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入门教程
Feb 08 Python
Python内置的字符串处理函数详细整理(覆盖日常所用)
Aug 19 Python
python编程开发之日期操作实例分析
Nov 13 Python
OpenCV实现人脸识别
Apr 07 Python
详解python3中的真值测试
Aug 13 Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
Jan 10 Python
使用python和pygame制作挡板弹球游戏
Dec 03 Python
Pytorch之保存读取模型实例
Dec 30 Python
Python Numpy库常见用法入门教程
Jan 16 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
Feb 26 Python
python 实现图与图之间的间距调整subplots_adjust
May 21 Python
Python实现DBSCAN聚类算法并样例测试
Jun 22 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
第十一节 重载 [11]
2006/10/09 PHP
ThinkPHP框架实现session跨域问题的解决方法
2014/07/01 PHP
PHP去除字符串最后一个字符的三种方法实例
2017/03/01 PHP
PHP性能测试工具xhprof安装与使用方法详解
2018/04/29 PHP
对laravel的session获取与存取方法详解
2019/10/08 PHP
JavaScript中的匀速运动和变速(缓冲)运动详细介绍
2012/11/11 Javascript
jquery.messager.js插件导致页面抖动的解决方法
2013/07/14 Javascript
zTree插件之单选下拉菜单实例代码
2013/11/07 Javascript
javascript中style.left和offsetLeft的用法说明
2014/03/07 Javascript
js对图片base64编码字符串进行解码并输出图像示例
2014/03/17 Javascript
将数字转换成大写的人民币表达式的js函数
2014/09/21 Javascript
推荐10 款 SVG 动画的 JavaScript 库
2015/03/24 Javascript
干货分享:让你分分钟学会javascript闭包
2015/12/25 Javascript
基于jquery实现图片上传本地预览功能
2016/01/08 Javascript
值得分享和收藏的Bootstrap学习教程
2016/05/12 Javascript
Javascript设计模式之装饰者模式详解篇
2017/01/17 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
2018/01/21 Javascript
Angular4 ElementRef的应用
2018/02/26 Javascript
react-router-dom 嵌套路由的实现
2020/05/02 Javascript
让你30分钟快速掌握vue3教程
2020/10/26 Javascript
[14:25]教你分分钟做大人:主宰(HEROS)
2014/12/08 DOTA
python使用openpyxl库修改excel表格数据方法
2018/05/03 Python
Python走楼梯问题解决方法示例
2018/07/25 Python
Tornado Web Server框架编写简易Python服务器
2018/07/28 Python
python tkinter组件使用详解
2019/09/16 Python
使用Python画出小人发射爱心的代码
2019/11/23 Python
pytorch中torch.max和Tensor.view函数用法详解
2020/01/03 Python
pycharm中导入模块错误时提示Try to run this command from the system terminal
2020/03/26 Python
详解三种方式实现平滑滚动页面到顶部的功能
2019/04/23 HTML / CSS
业务助理岗位职责
2013/11/18 职场文书
测绘工程系学生的自我评价
2013/11/30 职场文书
大学自主招生自荐信范文
2014/02/26 职场文书
小学优秀班集体申报材料
2014/05/25 职场文书
员工团队活动方案
2014/08/28 职场文书
养成教育工作总结
2015/08/13 职场文书
2016年大学校运会广播稿件
2015/12/21 职场文书