python3实现域名查询和whois查询功能


Posted in Python onJune 21, 2018

1. 域名查询

万网提供了域名查询接口,接口采用HTTP协议:

接口URL:http://panda.www.net.cn/cgi-bin/check.cgi

接口参数:area_domain,接口参数值为标准域名,例:doucube.com

调用举例:

http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=doucube.com

返回:

<?xml version="1.0" encoding="gb2312" ?> 
- <property>
 <returncode>200</returncode> 
 <key>doucube.com</key> 
 <original>211 : Domain name is not available</original> 
 </property>

返回结果说明:

<returncode>200</returncode> 返回码,200表示返回成功
<key>doucube.com</key> 表示当前查询的域名
<original>211 : Domain name is not available</original> 返回结果的原始信息,主要有以下几种

original=210 : Domain name is available  表示域名可以注册
original=211 : Domain name is not available 表示域名已经注册
original=212 : Domain name is invalid  表示查询的域名无效
original=213 : Time out 查询超时

用python3实现如下

1.1 查询已经被注册的域名

import urllib.request
req = urllib.request.urlopen('http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=doucube.com')
print(req.read().decode())

返回结果:不可用,已经被注册

<?xml version="1.0" encoding="gb2312" ?> 
- <property>
 <returncode>200</returncode> 
 <key>doucube.com</key> 
 <original>211 : Domain name is not available</original> 
 </property>

1.2 查询没有被注册的域名

req2 = urllib.request.urlopen('http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=doucube.net')
print(req2.read().decode())

返回结果:可用,未被注册

<?xml version="1.0" encoding="gb2312" ?> 
- <property>
 <returncode>200</returncode> 
 <key>doucube.net</key> 
 <original>210 : Domain name is available</original> 
 </property>

1.3 查询不存在的域名,使用不存在的后缀

req3 = urllib.request.urlopen('http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=doucube.net2')
print(req3.read().decode())

返回结果:域名无效

<?xml version="1.0" encoding="gb2312" ?> 
- <property>
 <returncode>200</returncode> 
 <key>doucube.net2</key> 
 <original>212 : Domain name is invalid</original> 
 </property>

.whois查询

由于没有找到像域名查询接口那样好的API,这里直接抓取站长之家的whois查询页面(http://whois.chinaz.com/)

req_whois = urllib.request.urlopen('http://whois.chinaz.com/doucube.com')
print(req_whois.read().decode())

在返回的结果中有这样一段html代码,这段信息就是查询的whois信息

<div style=" text-align:center;"> 
 <div class="div_whois">
  域名:doucube.com  
  <a href='http://www.doucube.com' target=_blank>访问此网站</a></div>
 <div id="whoisinfo" class="div_whois">
  注册商:GODADDY.COM, LLC<br/>
  域名服务器:whois.godaddy.com<br/>
  DNS服务器:DNS1.FREEHOSTIA.COM<br/>
  DNS服务器:DNS2.FREEHOSTIA.COM<br/>
  域名状态:运营商设置了客户禁止删除保护<br/>
  域名状态:运营商设置了客户禁止续费保护<br/>
  域名状态:运营商设置了客户禁止转移保护<br/>
  域名状态:运营商设置了客户禁止修改保护<br/>
  更新时间:2012年05月28日<br/>
  创建时间:2012年05月23日<br/>
  过期时间:2013年05月23日<br/>
  联系人:zhu, alice<br/>
  联系方式:<img src="/displayemail.aspx?email=M8N8oc1O|iQhqGCDHdpH9m77v2qrQfW8"/>
  <br/>
  <br/>
 </div>
</div>
Python 相关文章推荐
Python中几个比较常见的名词解释
Jul 04 Python
深入解析Python中的urllib2模块
Nov 13 Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
Jul 04 Python
Python访问MongoDB,并且转换成Dataframe的方法
Oct 15 Python
Django xadmin开启搜索功能的实现
Nov 15 Python
python线程定时器Timer实现原理解析
Nov 30 Python
Python操作redis和mongoDB的方法
Dec 19 Python
Windows10+anacond+GPU+pytorch安装详细过程
Mar 24 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
Mar 30 Python
django ORM之values和annotate使用详解
May 19 Python
Python实现ElGamal加密算法的示例代码
Jun 19 Python
使用tensorflow根据输入更改tensor shape
Jun 23 Python
解决python写入mysql中datetime类型遇到的问题
Jun 21 #Python
详解Python下ftp上传文件linux服务器
Jun 21 #Python
Python爬取数据并写入MySQL数据库的实例
Jun 21 #Python
python实现黑客字幕雨效果
Jun 21 #Python
python实现内存监控系统
Mar 07 #Python
Python之csv文件从MySQL数据库导入导出的方法
Jun 21 #Python
python 从csv读数据到mysql的实例
Jun 21 #Python
You might like
多个PHP中文字符串截取函数
2013/11/12 PHP
php Imagick获取图片RGB颜色值
2014/07/28 PHP
PHP文件锁函数flock()详细介绍
2014/11/18 PHP
WordPress中获取所使用的模板的页面ID的简单方法
2015/12/31 PHP
js 显示base64编码的二进制流网页图片
2014/04/04 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
jQuery实现的动态伸缩导航菜单实例
2015/05/07 Javascript
javascript对象的相关操作小结
2016/05/16 Javascript
jquery+ajax实现直接提交表单实例分析
2016/06/17 Javascript
js HTML5多媒体影音播放
2016/10/17 Javascript
给easyui的datebox控件添加清空按钮的实现方法
2016/11/09 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
2017/05/12 Javascript
Node.JS利用PhantomJs抓取网页入门教程
2017/05/19 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
2018/03/08 Javascript
Vue路由前后端设计总结
2019/08/06 Javascript
微信小程序实现modal弹出框遮罩层组件(可带文本框)
2020/12/20 Javascript
[01:52]深扒TI7聊天轮盘语音出处7
2017/05/11 DOTA
[43:57]Liquid vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python 迭代器工具包【推荐】
2016/05/06 Python
pytorch中tensor.expand()和tensor.expand_as()函数详解
2019/12/27 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
2020/01/08 Python
django queryset 去重 .distinct()说明
2020/05/19 Python
Python数据可视化实现多种图例代码详解
2020/07/14 Python
pandas按照列的值排序(某一列或者多列)
2020/12/13 Python
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
向领导表决心的话
2014/03/11 职场文书
党员公开承诺事项
2014/03/25 职场文书
大学生入党积极分子自我评价
2014/09/20 职场文书
批评与自我批评发言稿
2014/10/15 职场文书
毕业设计论文评语
2014/12/31 职场文书
企业党建工作总结2015
2015/05/26 职场文书
海洋天堂观后感
2015/06/05 职场文书
小学运动会宣传稿
2015/07/23 职场文书
公司人力资源管理制度
2015/08/05 职场文书
聊聊pytorch测试的时候为何要加上model.eval()
2021/05/23 Python
SpringBoot2零基础到精通之异常处理与web原生组件注入
2022/03/22 Java/Android