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 相关文章推荐
在RedHat系Linux上部署Python的Celery框架的教程
Apr 07 Python
Python基于sftp及rsa密匙实现远程拷贝文件的方法
Sep 21 Python
Python可变参数用法实例分析
Apr 02 Python
基于python元祖与字典与集合的粗浅认识
Aug 23 Python
Python DataFrame设置/更改列表字段/元素类型的方法
Jun 09 Python
Python中使用Counter进行字典创建以及key数量统计的方法
Jul 06 Python
使用TensorFlow实现简单线性回归模型
Jul 19 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
Aug 23 Python
python 实现检验33品种数据是否是正态分布
Dec 09 Python
keras.layer.input()用法说明
Jun 16 Python
matplotlib事件处理基础(事件绑定、事件属性)
Feb 03 Python
Python办公自动化PPT批量转换操作
Sep 15 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系统命令函数使用分析
2013/07/05 PHP
php字符串函数学习之strstr()
2015/03/27 PHP
PHP模拟asp.net的StringBuilder类实现方法
2015/08/08 PHP
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
Javascript中valueOf与toString区别浅析
2013/03/19 Javascript
JS图像无缝滚动脚本非常好用
2014/02/10 Javascript
jQuery中多个元素的Hover事件解决方案
2014/06/12 Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
2015/09/10 Javascript
jQuery.cookie.js实现记录最近浏览过的商品功能示例
2017/01/23 Javascript
jQuery中map函数的两种方式
2017/04/07 jQuery
用ES6的class模仿Vue写一个双向绑定的示例代码
2018/04/20 Javascript
vue动画打包后失效问题的解决方法
2018/09/18 Javascript
extract-text-webpack-plugin用法详解
2019/02/14 Javascript
微信二次分享报错invalid signature问题及解决方法
2019/04/01 Javascript
d3.js实现图形缩放平移
2019/12/19 Javascript
Python进程间通信用法实例
2015/06/04 Python
Python语言的变量认识及操作方法
2018/02/11 Python
有关Python的22个编程技巧
2018/08/29 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
2018/12/12 Python
PIL图像处理模块paste方法简单使用详解
2019/07/17 Python
解决python使用list()时总是报错的问题
2020/05/05 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
2020/06/18 Python
Python通过zookeeper实现分布式服务代码解析
2020/07/22 Python
突袭HTML5之Javascript API扩展3—本地存储全新体验
2013/01/31 HTML / CSS
护士求职推荐信范文
2013/11/23 职场文书
市场部管理制度
2014/02/02 职场文书
汽车促销活动方案
2014/03/31 职场文书
青年志愿者活动总结
2014/04/26 职场文书
法人委托书范本
2014/09/15 职场文书
软件研发工程师岗位职责
2014/09/30 职场文书
西游记读书笔记
2015/06/25 职场文书
2016入党积极分子党课学习心得体会
2015/10/09 职场文书
小学班级管理心得体会
2016/01/07 职场文书
2016年最美孝心少年事迹材料
2016/02/26 职场文书
初三语文教学反思
2016/03/03 职场文书
Python数据分析入门之数据读取与存储
2021/05/13 Python