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中的闭包总结
Sep 18 Python
python使用psutil模块获取系统状态
Aug 27 Python
python入门基础之用户输入与模块初认识
Nov 14 Python
Python利用正则表达式实现计算器算法思路解析
Apr 25 Python
pytorch 模型可视化的例子
Aug 17 Python
Django url,从一个页面调到另个页面的方法
Aug 21 Python
Kears+Opencv实现简单人脸识别
Aug 28 Python
python pyenv多版本管理工具的使用
Dec 23 Python
python打印异常信息的两种实现方式
Dec 24 Python
python-docx文件定位读取过程(尝试替换)
Feb 13 Python
Python栈的实现方法示例【列表、单链表】
Feb 22 Python
Django用内置方法实现简单搜索功能的方法
Dec 18 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安装xdebug/php安装pear/phpunit详解步骤(图)
2013/12/22 PHP
php实现四舍五入的方法小结
2015/03/03 PHP
php计算指定目录下文件占用空间的方法
2015/03/13 PHP
PHP也能干大事之PHP中的编码解码详解
2015/04/20 PHP
PHP单链表的实现代码
2016/07/05 PHP
PHP时间相关常用函数用法示例
2020/06/03 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
通过JS 获取Mouse Position(鼠标坐标)的代码
2009/09/21 Javascript
js trim函数 去空格函数与正则集锦
2009/11/20 Javascript
Javascript基础教程之if条件语句
2015/01/18 Javascript
使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
2015/11/26 Javascript
js实现微博发布小功能
2017/01/12 Javascript
详解vue-router基本使用
2017/04/18 Javascript
微信小程序日历组件calendar详解及实例
2017/06/08 Javascript
vue.js将时间戳转化为日期格式的实现代码
2018/06/05 Javascript
基于Vue-Cli 打包自动生成/抽离相关配置文件的实现方法
2018/12/09 Javascript
Jquery的autocomplete插件用法及参数讲解
2019/03/12 jQuery
Vue filter 过滤器、以及在table中的使用介绍
2020/09/07 Javascript
vue-resource 拦截器interceptors使用详解
2021/01/18 Vue.js
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS OG
2018/03/30 DOTA
python 字典(dict)遍历的四种方法性能测试报告
2014/06/25 Python
详解Python实现按任意键继续/退出的功能
2016/08/19 Python
window下eclipse安装python插件教程
2017/04/24 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
2019/01/09 Python
Python cookie的保存与读取、SSL讲解
2020/02/17 Python
keras训练浅层卷积网络并保存和加载模型实例
2020/07/02 Python
Python数据模型与Python对象模型的相关总结
2021/01/26 Python
Python之多进程与多线程的使用
2021/02/23 Python
优秀毕业生自荐信范文
2014/01/01 职场文书
大三学生入党思想汇报
2014/01/02 职场文书
八年级物理教学反思
2014/01/19 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
2015年度信用社工作总结
2015/05/04 职场文书
委托书范本格式
2019/04/18 职场文书
python 统计代码耗时的几种方法分享
2021/04/02 Python
基于Python实现西西成语接龙小助手
2022/08/05 Golang