Python实现获取域名所用服务器的真实IP
admin
2023-07-31 02:34:48
0

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

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

相关内容

热门资讯

500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
python绘图库Matplo... 本文简单介绍了Python绘图库Matplotlib的安装,简介如下: matplotlib是pyt...
Prometheus+Graf... 一,Prometheus概述 1,什么是Prometheus?Prometheus是最初在Sound...