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开发之快速搭建自动回复微信公众号功能
Apr 22 Python
JSON文件及Python对JSON文件的读写操作
Oct 07 Python
Python设计模式之命令模式原理与用法实例分析
Jan 11 Python
python控制nao机器人身体动作实例详解
Apr 29 Python
Python3内置模块random随机方法小结
Jul 13 Python
使用Python代码实现Linux中的ls遍历目录命令的实例代码
Sep 07 Python
如何基于Python获取图片的物理尺寸
Nov 25 Python
Python for循环通过序列索引迭代过程解析
Feb 07 Python
python字符串的index和find的区别详解
Jun 20 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
Jul 07 Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
Nov 20 Python
详解Java中一维、二维数组在内存中的结构
Feb 11 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 数组动态添加实现代码(最土团购系统的价格排序)
2011/12/30 PHP
php curl post 时出现的问题解决
2014/01/30 PHP
PHP中的一些常用函数收集
2015/05/26 PHP
PHP数组中头部和尾部添加元素的方法(array_unshift,array_push)
2017/04/10 PHP
PHP7 弃用功能
2021/03/09 PHP
jQuery常用数据处理方法小结
2015/02/20 Javascript
移动端jQuery修正Web页面滑动时div问题的两则实例
2016/05/30 Javascript
JavaScript原生实现观察者模式的示例
2017/12/15 Javascript
Vue组件和Route的生命周期实例详解
2018/02/10 Javascript
vue.js打包之后可能会遇到的坑!
2018/06/03 Javascript
vue3.0 CLI - 1 - npm 安装与初始化的入门教程
2018/09/14 Javascript
jQuery实现高级检索功能
2019/05/28 jQuery
vue 使用axios 数据请求第三方插件的使用教程详解
2019/07/05 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
2020/08/27 Javascript
JavaScript实现商品评价五星好评
2020/11/30 Javascript
Python实现查找系统盘中需要找的字符
2015/07/14 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
2018/10/14 Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
2019/01/30 Python
Python实现桌面翻译工具【新手必学】
2020/02/12 Python
python实现网页录音效果
2020/10/26 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
2020/11/28 Python
CSS3自定义滚动条样式的示例代码
2017/08/21 HTML / CSS
10个最常见的HTML5面试题 附答案
2016/06/06 HTML / CSS
HTML5本地存储和本地数据库实例详解
2017/09/05 HTML / CSS
大学毕业感言
2014/01/10 职场文书
药品促销活动方案
2014/02/14 职场文书
兴趣小组活动总结
2014/05/05 职场文书
任命书怎么写
2014/06/04 职场文书
企业办公室主任岗位职责
2015/04/01 职场文书
公司开除员工通知
2015/04/22 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书
2019年个人工作总结范文(3篇)
2019/08/27 职场文书
如何判断微信付款码和支付宝付款码
2021/04/01 PHP
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis
MySQL 数据类型选择原则
2021/05/27 MySQL
Python语言规范之Pylint的详细用法
2021/06/24 Python