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 第一步 hello world
Sep 25 Python
Mac中Python 3环境下安装scrapy的方法教程
Oct 26 Python
Python实现找出数组中第2大数字的方法示例
Mar 26 Python
利用Python进行数据可视化常见的9种方法!超实用!
Jul 11 Python
python 快速把超大txt文件转存为csv的实例
Oct 26 Python
python用post访问restful服务接口的方法
Dec 07 Python
Python 实现子类获取父类的类成员方法
Jan 11 Python
python执行scp命令拷贝文件及文件夹到远程主机的目录方法
Jul 08 Python
新手如何发布Python项目开源包过程详解
Jul 11 Python
django rest framework 实现用户登录认证详解
Jul 29 Python
Python sys模块常用方法解析
Feb 20 Python
基于Python和C++实现删除链表的节点
Jul 06 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
ThinkPHP之R方法实例详解
2014/06/20 PHP
ThinkPHP实现动态包含文件的方法
2014/11/29 PHP
PHP获取ip对应地区和使用网络类型的方法
2015/03/11 PHP
php实现在线通讯录功能(附源码)
2016/05/13 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
2016/06/24 PHP
PHP最常用的正则表达式
2017/02/13 PHP
php适配器模式简单应用示例
2019/10/23 PHP
更换select下拉菜单背景样式的实现代码
2011/12/20 Javascript
js原型链原理看图说明
2012/07/07 Javascript
javascript手工制作悬浮菜单
2015/02/12 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
jQuery滚动加载图片实现原理
2015/12/14 Javascript
JavaScript兼容浏览器FF/IE技巧
2016/08/14 Javascript
JS实现的新闻列表自动滚动效果示例
2019/01/30 Javascript
js如何获取图片url的Blob值并预览示例代码
2019/03/07 Javascript
微信小程序实现滚动加载更多的代码
2019/12/06 Javascript
[01:02:10]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第一局
2016/02/26 DOTA
[00:36]DOTA2上海特级锦标赛 Archon战队宣传片
2016/03/04 DOTA
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
Python实现针对中文排序的方法
2017/05/09 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
django 发送邮件和缓存的实现代码
2018/07/18 Python
python 检查文件mime类型的方法
2018/12/08 Python
利用python开发app实战的方法
2019/07/09 Python
大一期末自我鉴定
2013/12/13 职场文书
计算机毕业生求职信
2014/06/10 职场文书
奥运会口号
2014/06/13 职场文书
完整版商业计划书
2014/09/15 职场文书
师德师风自我剖析材料
2014/09/27 职场文书
计划生育诚信协议书
2014/11/02 职场文书
优秀大学生自荐信
2015/03/26 职场文书
日本读研:怎样写好一篇日本研究计划书?
2019/07/15 职场文书
html实现随机点名器的示例代码
2021/04/02 Javascript
JavaScript如何利用Promise控制并发请求个数
2021/05/14 Javascript
Python进度条的使用
2021/05/17 Python
Spring Security中用JWT退出登录时遇到的坑
2021/10/16 Java/Android