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使用wmi模块获取windows下的系统信息 监控系统
Oct 27 Python
Python的爬虫程序编写框架Scrapy入门学习教程
Jul 02 Python
json跨域调用python的方法详解
Jan 11 Python
python使用os.listdir和os.walk获得文件的路径的方法
Dec 16 Python
python3+PyQt5实现文档打印功能
Apr 24 Python
Django 自定义分页器的实现代码
Nov 24 Python
tensorflow查看ckpt各节点名称实例
Jan 21 Python
Django自关联实现多级联动查询实例
May 19 Python
python 线程的五个状态
Sep 22 Python
Python离线安装各种库及pip的方法
Nov 28 Python
python的setattr函数实例用法
Dec 16 Python
pip/anaconda修改镜像源,加快python模块安装速度的操作
Mar 04 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
mysql 中InnoDB和MyISAM的区别分析小结
2008/04/15 PHP
PHP之COOKIE支持详解
2010/09/20 PHP
php自定义apk安装包实例
2014/10/20 PHP
搭建基于Docker的PHP开发环境的详细教程
2015/07/01 PHP
PHP Trait功能与用法实例分析
2020/06/03 PHP
浅析Javascript使用include/require
2013/11/13 Javascript
php析构函数的具体用法小结
2014/03/11 Javascript
Javascript实现简单的富文本编辑器附演示
2014/06/16 Javascript
jQuery中slideUp()方法用法分析
2014/12/24 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
2015/10/09 Javascript
javascript实现简单的全选和反选功能
2016/01/05 Javascript
原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法
2016/08/05 Javascript
Jquery和Js获得元素标签名称的方法总结
2016/10/08 Javascript
简单理解vue中el、template、replace元素
2016/10/27 Javascript
axios发送post请求springMVC接收不到参数的解决方法
2018/03/05 Javascript
通过JS深度判断两个对象字段相同
2019/06/14 Javascript
jQuery实现消息弹出框效果
2019/12/10 jQuery
使用python实现rsa算法代码
2016/02/17 Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
2018/04/17 Python
python实现在IDLE中输入多行的方法
2018/04/19 Python
python变量赋值方法(可变与不可变)
2019/01/12 Python
python实现简单加密解密机制
2019/03/19 Python
python 叠加等边三角形的绘制的实现
2019/08/14 Python
Python实现直播推流效果
2019/11/26 Python
CSS Grid布局教程之浏览器开启CSS Grid Layout汇总
2014/12/30 HTML / CSS
纯CSS3实现运行时钟的示例代码
2021/01/25 HTML / CSS
HTML5单选框、复选框、下拉菜单、文本域的实现代码
2020/12/01 HTML / CSS
精选奢华:THE LIST
2019/09/05 全球购物
EntityManager都有哪些方法
2013/11/01 面试题
研修心得体会
2014/09/04 职场文书
2014年工商所工作总结
2014/12/09 职场文书
高考诚信考试承诺书
2015/04/29 职场文书
幼儿园托班开学寄语(2016春季)
2015/12/03 职场文书
重温经典:乔布斯在斯坦福大学的毕业演讲(双语)
2019/08/26 职场文书
CSS3实现模糊背景的三种效果示例
2021/03/30 HTML / CSS
cypress测试本地web应用
2022/06/01 Javascript