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实现冒泡,插入,选择排序简单实例
Aug 18 Python
在Python中使用itertools模块中的组合函数的教程
Apr 13 Python
深入了解Python中pop和remove的使用方法
Jan 09 Python
利用Python实现在同一网络中的本地文件共享方法
Jun 04 Python
python中join()方法介绍
Oct 11 Python
python 字符串只保留汉字的方法
Nov 16 Python
Django高级编程之自定义Field实现多语言
Jul 02 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
Jun 28 Python
python+flask编写一个简单的登录接口
Nov 13 Python
Python新建项目自动添加介绍和utf-8编码的方法
Dec 26 Python
python使用openpyxl库读写Excel表格的方法(增删改查操作)
May 02 Python
用Python selenium实现淘宝抢单机器人
Jun 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
一个图形显示IP的PHP程序代码
2007/10/19 PHP
PHP 数据结构 算法 三元组 Triplet
2011/07/02 PHP
php实现简单的语法高亮函数实例分析
2015/04/27 PHP
session 加入redis的实现代码
2016/07/15 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
2018/10/12 PHP
php转换上传word文件为PDF的方法【基于COM组件】
2019/06/10 PHP
capacityFixed 基于jquery的类似于新浪微博新消息提示的定位框
2011/05/24 Javascript
JavaScript匿名函数之模仿块级作用域
2015/12/12 Javascript
微信小程序 实现tabs选项卡效果实例代码
2016/10/31 Javascript
JQuery学习总结【二】
2016/12/01 Javascript
loading动画特效小结
2017/01/22 Javascript
Vue.js实现网格列表布局转换方法
2017/08/25 Javascript
webpack 开发和生产并行设置的方法
2018/11/08 Javascript
VUE2.0 ElementUI2.0表格el-table自适应高度的实现方法
2018/11/28 Javascript
this在vue和小程序中的使用详解
2019/01/28 Javascript
vue-i18n结合Element-ui的配置方法
2019/05/20 Javascript
原生js实现的移动端可拖动进度条插件功能详解
2019/08/15 Javascript
Python基于回溯法子集树模板解决最佳作业调度问题示例
2017/09/08 Python
python利用有道翻译实现&quot;语言翻译器&quot;的功能实例
2017/11/14 Python
Python中协程用法代码详解
2018/02/10 Python
Django框架实现逆向解析url的方法
2018/07/04 Python
对python:循环定义多个变量的实例详解
2019/01/20 Python
提升Python程序性能的7个习惯
2019/04/14 Python
python openvc 裁剪、剪切图片 提取图片的行和列
2019/09/19 Python
python实现飞机大战小游戏
2019/11/08 Python
python有几个版本
2020/06/17 Python
css3高级选择器使用方法
2013/12/02 HTML / CSS
详解如何在css3打包后自动追加前缀插件:autoprefixer
2018/12/18 HTML / CSS
英国儿童图书网站:Scholastic
2017/03/26 全球购物
初一英语教学反思
2014/01/11 职场文书
团代会宣传工作方案
2014/05/08 职场文书
大学生学雷锋活动总结
2014/06/26 职场文书
医院深入开展党的群众路线教育实践活动实施方案
2014/08/27 职场文书
餐厅感恩节活动策划方案
2014/10/11 职场文书
拾金不昧表扬信怎么写
2015/05/04 职场文书
浅谈redis的过期时间设置和过期删除机制
2022/03/18 MySQL