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

 更新时间:2015年10月25日 12:12:24   投稿:hebedich  
本文是给大家分享的使用python获取到域名所在服务器的真实IP,原因是现在很多的网站都使用了CDN,大家很难直接查到域名的服务器的IP,本文是使用了一个巧妙的方法,详情请仔细看看下文吧

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

验证域名和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\">\.(.*?)\&nbsp;</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 '完毕'#弹窗完成

相关文章

  • matplotlib基础绘图命令之bar的使用方法

    matplotlib基础绘图命令之bar的使用方法

    这篇文章主要介绍了matplotlib基础绘图命令之bar的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Python字符串拼接六种方法介绍

    Python字符串拼接六种方法介绍

    这篇文章主要介绍了Python字符串拼接六种方法介绍,具有一定借鉴价值,需要的朋友看可以参考下。
    2017-12-12
  • Windows系统配置python脚本开机启动的3种方法分享

    Windows系统配置python脚本开机启动的3种方法分享

    这篇文章主要介绍了Windows系统配置python脚本开机启动的3种方法分享,本文讲解了开始菜单启动项实现、开机脚本、通过一个服务调用该脚本三种方法,需要的朋友可以参考下
    2015-03-03
  • CentOS安装pillow报错的解决方法

    CentOS安装pillow报错的解决方法

    本文给大家分享的是作者在centos下为Python安装pillow的时候报错的解决方法,希望对大家能够有所帮助。
    2016-01-01
  • Pytorch随机数生成常用的4种方法汇总

    Pytorch随机数生成常用的4种方法汇总

    随机数广泛应用在科学研究,但是计算机无法产生真正的随机数,一般成为伪随机数,下面这篇文章主要给大家介绍了关于Pytorch随机数生成常用的4种方法,需要的朋友可以参考下
    2023-05-05
  • Python format字符串格式化函数的使用

    Python format字符串格式化函数的使用

    本文主要介绍了Python format字符串格式化函数的使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • pythonfor循环中range与len区别

    pythonfor循环中range与len区别

    这篇文章主要介绍了pythonfor循环中range与len区别,文章围绕主题展开详细的内容介绍,具有一定参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • python not关键字实例用法

    python not关键字实例用法

    在本篇文章里小编给大家整理的是一篇关于python not关键字实例用法,有兴趣的朋友们可以学习下。
    2021-04-04
  • Python中使用Frozenset对象的案例详解

    Python中使用Frozenset对象的案例详解

    Frozensets提供了一种创建不可变的集合的方法,它们只接受唯一的元素,并且是可散列类型的对象,所以它们可以在其他只接受可散列对象作为子对象的 Python 对象中使用,这篇文章主要介绍了如何在Python中使用Frozenset对象,需要的朋友可以参考下
    2022-08-08
  • python列出目录下指定文件与子目录的方法

    python列出目录下指定文件与子目录的方法

    这篇文章主要介绍了python列出目录下指定文件与子目录的方法,涉及Python使用os模块与glob操作目录与文件的技巧,需要的朋友可以参考下
    2015-07-07

最新评论