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 re正则表达式模块(Regular Expression)
Jul 16 Python
Python yield 使用浅析
May 28 Python
Python验证企业工商注册码
Oct 25 Python
Python实现读取文件最后n行的方法
Feb 23 Python
初学python的操作难点总结(新手必看篇)
Aug 03 Python
不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
Sep 24 Python
pandas 使用apply同时处理两列数据的方法
Apr 20 Python
使用Python批量修改文件名的代码实例
Jan 24 Python
python多线程分块读取文件
Aug 29 Python
解决Python中报错TypeError: must be str, not bytes问题
Apr 07 Python
python tqdm库的使用
Nov 30 Python
Python机器学习之KNN近邻算法
May 14 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
什么是MVC,好东西啊
2007/05/03 PHP
php empty函数判断mysql表单是否为空
2010/04/12 PHP
php生成随机密码自定义函数代码(简单快速)
2014/05/10 PHP
PHP实现ftp上传文件示例
2014/08/21 PHP
PHP扩展mcrypt实现的AES加密功能示例
2019/01/29 PHP
JS 统计时间
2021/03/09 Javascript
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
JavaScript图片放大技术(放大镜)实现代码分享
2013/11/14 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
去除字符串左右两边的空格(实现代码)
2016/05/12 Javascript
BootStrapValidator校验方式
2016/12/19 Javascript
Three.js实现浏览器变动时进行自适应的方法
2017/09/26 Javascript
vue scroller返回页面记住滚动位置的实例代码
2018/01/29 Javascript
JS+HTML5实现获取手机验证码倒计时按钮
2018/08/08 Javascript
Vue条件循环判断+计算属性+绑定样式v-bind的实例
2018/09/18 Javascript
js基础之事件捕获与冒泡原理
2019/10/09 Javascript
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
Python 解析XML文件
2009/04/15 Python
Python实现Pig Latin小游戏实例代码
2018/02/02 Python
python实现在pandas.DataFrame添加一行
2018/04/04 Python
python随机数分布random测试
2018/08/27 Python
python dlib人脸识别代码实例
2019/04/04 Python
Python中psutil的介绍与用法
2019/05/02 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
2019/10/01 Python
澳大利亚买卖正宗二手奢侈品交易平台:Luxe.It.Fwd
2019/10/16 全球购物
购买正版游戏和游戏激活码:Green Man Gaming
2019/11/06 全球购物
大学生活学习的自我评价
2013/12/03 职场文书
认购协议书范本
2014/04/22 职场文书
教师节联欢会主持词
2015/07/04 职场文书
2019经典广告词集锦!
2019/07/02 职场文书
护理专业毕业自我鉴定
2019/08/12 职场文书
写作技巧:如何撰写一份优秀的营销策划书
2019/08/13 职场文书
导游词之湖州-太湖
2019/10/11 职场文书
七年级作文之关于奶奶
2019/10/29 职场文书
Python字典和列表性能之间的比较
2021/06/07 Python
Android基于Fresco实现圆角和圆形图片
2022/04/01 Java/Android