Python实现获取域名所用服务器的真实IP


Posted in Python onOctober 25, 2015

本来是要写个程序用的,没写完不写了,这一部分就贴出来吧

验证域名和IP

class JianKong():
  '''查询IDC信息,封ip和过白名单'''
  def __init__(self):
    pass
  @classmethod
  def ip_verify(cls,str):
    '验证IP地址规范'
    pattern=re.compile('(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])')
    s=pattern.findall(str)
    if len(s)>0:
      ip=s[0][0]+'.'+s[0][1]+'.'+s[0][2]+'.'+s[0][3]
      return ip
    else:
      print 'IP格式不正确'#弹窗提醒
      return ''
  @classmethod
  def domain_verify(cls,domainStr):
    '验证域名规范,返回合法域名列表'
    domainList=[]
    file=open('c:\domain.txt','r')
    domainType=file.readlines()
    #去重
    domainType=list(set(domainType))
    #print domainType
    file.close()
    #file=['com','ac','com.cn','net'+'']
    for line in domainType:
      #文件中动态读取每个顶级域名进行匹配
      line=line.strip()
      pattern=re.compile('([a-z0-9][a-z0-9\-]*?\.'+line+')(?:\s|$)+',re.S)
      #例如[a-z0-9][a-z0-9\-]*?\.com.cn(?:\s|$)+ 中(?:\s|$)表示域名后缀后面必须是空白符或者字符结束(?:)表示括号不用于分组功能
      #防止.com.cn先匹配到.com即停止匹配导致错误,或者匹配到.comc多了字符
      result=pattern.findall(domainStr)
      if len(result)>0:
        #正确结果添加到返回列表
        domainList=domainList+result
    #去重
    domainList=list(set(domainList))
    newList=[]
    for d in domainList:
      if d not in domainType and d+'\n' not in domainType:
        newList.append(d)
           
    return newList
  @classmethod
  def getDomainType(cls):
    '从工信部网站获取所有合法域名后缀'
    file=open('c:/domain.txt','w')
    p=re.compile('class=\"by2\">\.(.*?)\ </td>', re.S)
    for i in range(1,23):
      data='domainName=&domainBlur=0&page.pageSize=20&pageNo='+str(i)+'&jumpPageNo='+str(i)
      header={'Host':'www.miitbeian.gov.cn','Origin':'http://www.miitbeian.gov.cn','User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 UBrowser/5.5.6125.14 Safari/537.36','Referer':'http://www.miitbeian.gov.cn/basecode/query/queryDomain.action;jsessionid=HSTRWpLZbR0cX4vFkDpnpbNBYyRl4GwW1fxpyhdyc0fcfhkvJTBV!1139295987'}
      url='http://www.miitbeian.gov.cn/basecode/query/queryDomain.action;jsessionid=HSTRWpLZbR0cX4vFkDpnpbNBYyRl4GwW1fxpyhdyc0fcfhkvJTBV!1139295987'
      request=urllib2.Request(url,data,header)
      response=urllib2.urlopen(request)
      recv=response.read()
      s=p.findall(recv)
      #print s
      #去重
      s=list(set(s))
      for y in s:
        file.write(y+'\n')
        file.flush()
        #print str(i)+' '+y
    file.close()
    print '完毕'#弹窗完成
Python 相关文章推荐
python实现得到一个给定类的虚函数
Sep 28 Python
浅谈python迭代器
Nov 08 Python
Python字符串拼接六种方法介绍
Dec 18 Python
Django重置migrations文件的方法步骤
May 01 Python
python如何删除文件中重复的字段
Jul 16 Python
基于Pytorch SSD模型分析
Feb 18 Python
Python多线程:主线程等待所有子线程结束代码
Apr 25 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
Apr 27 Python
Python如何把十进制数转换成ip地址
May 25 Python
Ubuntu权限不足无法创建文件夹解决方案
Nov 14 Python
Python3压缩和解压缩实现代码
Mar 01 Python
Python如何使用循环结构和分支结构
Apr 13 Python
Python制作爬虫采集小说
Oct 25 #Python
Python验证企业工商注册码
Oct 25 #Python
日常整理python执行系统命令的常见方法(全)
Oct 22 #Python
Python六大开源框架对比
Oct 19 #Python
Python脚本暴力破解栅栏密码
Oct 19 #Python
python学习笔记之调用eval函数出现invalid syntax错误问题
Oct 18 #Python
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
Oct 18 #Python
You might like
php下判断数组中是否存在相同的值array_unique
2008/03/25 PHP
ThinkPHP分组下自定义标签库实例
2014/11/01 PHP
调试PHP程序的多种方法介绍
2014/11/06 PHP
利用switch语句进行多选一判断的实例代码
2016/11/14 PHP
Javascript 布尔型分析
2008/12/22 Javascript
jQuery前台数据获取实现代码
2011/03/16 Javascript
使用js正则控制input标签只允许输入的值
2013/07/29 Javascript
JS小功能(checkbox实现全选和全取消)实例代码
2013/11/28 Javascript
javascript结合ajax读取txt文件内容
2014/12/05 Javascript
jQuery性能优化技巧分析
2015/02/20 Javascript
javascript实现类似百度分享功能的方法
2015/07/27 Javascript
18个非常棒的jQuery代码片段
2015/11/02 Javascript
JavaScript中Array对象用法实例总结
2016/11/29 Javascript
Vue.js实战之利用vue-router实现跳转页面
2017/04/01 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
2017/12/08 Javascript
微信小程序自定义键盘 内部虚拟支付
2018/12/20 Javascript
详解vue-router导航守卫
2019/01/19 Javascript
python字典多键值及重复键值的使用方法(详解)
2016/10/31 Python
Python虚拟环境项目实例
2017/11/20 Python
python3解析库BeautifulSoup4的安装配置与基本用法
2018/06/26 Python
python查看数据类型的方法
2019/10/12 Python
浅析PEP570新语法: 只接受位置参数
2019/10/15 Python
python绘制雪景图
2019/12/16 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
2020/02/21 Python
浅析CSS3中鲜为人知的属性:-webkit-tap-highlight-color
2017/01/12 HTML / CSS
NIHAOMARKET官方海外旗舰店:意大利你好华人超市
2018/01/27 全球购物
创伤外科专业推荐信范文
2013/11/19 职场文书
质检员岗位职责
2013/12/17 职场文书
交通事故检查书范文
2014/01/30 职场文书
建筑安全责任书范本
2014/07/24 职场文书
四风问题党员个人整改措施
2014/10/27 职场文书
教代会闭幕词
2015/01/28 职场文书
法人代表证明书范本
2015/06/18 职场文书
初三毕业感言
2015/07/31 职场文书
教你用Java在个人电脑上实现微信扫码支付
2021/06/13 Java/Android
windows系统安装配置nginx环境
2022/06/28 Servers