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 03 Python
在Python中使用CasperJS获取JS渲染生成的HTML内容的教程
Apr 09 Python
python中while循环语句用法简单实例
May 07 Python
python+opencv轮廓检测代码解析
Jan 05 Python
Python实现的多进程拷贝文件并显示百分比功能示例
Apr 09 Python
python+selenium实现自动化百度搜索关键词
Jun 03 Python
Python 实现文件读写、坐标寻址、查找替换功能
Sep 11 Python
利用Python绘制有趣的万圣节南瓜怪效果
Oct 31 Python
python3让print输出不换行的方法
Aug 24 Python
BeautifulSoup中find和find_all的使用详解
Dec 07 Python
Django项目如何正确配置日志(logging)
Apr 29 Python
Python利用Turtle绘制哆啦A梦和小猪佩奇
Apr 04 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实现小型站点广告管理(修正版)
2006/10/09 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
php合并数组并保留键值的实现方法
2018/03/12 PHP
Laravel框架Request、Response及Session操作示例
2019/05/06 PHP
jQuery 动画基础教程
2008/12/25 Javascript
javascript分页代码(当前页码居中)
2012/09/20 Javascript
jquery ajax 局部刷新小案例
2014/02/08 Javascript
使用Chrome浏览器调试AngularJS应用的方法
2015/06/18 Javascript
jquery实现简洁文件上传表单样式
2015/11/02 Javascript
bootstrap table小案例
2016/10/21 Javascript
vue.js动态数据绑定学习笔记
2017/05/19 Javascript
es7学习教程之fetch解决异步嵌套问题的方法示例
2017/07/21 Javascript
jQuery图片加载失败替换默认图片方法汇总
2017/11/29 jQuery
微信小程序实现的贪吃蛇游戏【附源码下载】
2018/01/03 Javascript
JS实现的缓冲运动效果示例
2018/04/30 Javascript
vue 组件中添加样式不生效的解决方法
2018/07/06 Javascript
详解Webstorm 下的Angular2.0开发之路(图文)
2018/12/06 Javascript
JavaScript直接调用函数与call调用的区别实例分析
2020/05/22 Javascript
js瀑布流布局的实现
2020/06/28 Javascript
[10:54]Team Spirit vs Navi
2018/06/07 DOTA
利用python模拟实现POST请求提交图片的方法
2017/07/25 Python
python3 kmp 字符串匹配的方法
2018/07/07 Python
如何在sublime编辑器中安装python
2020/05/20 Python
Myprotein葡萄牙官方网站:英国优质运动营养品牌
2016/09/12 全球购物
全球性的在线购物网站:Zapals
2017/03/22 全球购物
德国汉莎航空中国官网: Lufthansa中国
2017/03/30 全球购物
印度排名第一的蛋糕、鲜花和礼品送货:Winni
2019/08/02 全球购物
普通PHP程序员笔试题
2016/01/01 面试题
如何在.net Winform里面显示PDF文档
2012/09/11 面试题
毕业生找工作推荐信
2013/11/21 职场文书
学生实习推荐信范文
2013/11/26 职场文书
文体活动实施方案
2014/03/27 职场文书
租房协议书
2014/04/10 职场文书
2014年党员创先争优承诺书
2014/05/29 职场文书
财务管理专业自荐书
2014/09/02 职场文书
工程催款通知书
2015/04/17 职场文书