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 02 Python
利用python代码写的12306订票代码
Dec 20 Python
Python编程中实现迭代器的一些技巧小结
Jun 21 Python
Python爬虫抓取代理IP并检验可用性的实例
May 07 Python
从运行效率与开发效率比较Python和C++
Dec 14 Python
Python使用type关键字创建类步骤详解
Jul 23 Python
flask实现验证码并验证功能
Dec 05 Python
使用opencv将视频帧转成图片输出
Dec 10 Python
Python代码中如何读取键盘录入的值
May 27 Python
Python Http请求json解析库用法解析
Nov 28 Python
opencv-python图像配准(匹配和叠加)的实现
Jun 23 Python
Python使用永中文档转换服务
May 06 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 number_format() 函数通过千位分组来格式化数字的实现代码
2013/08/06 PHP
PHP中遇到的时区问题解决方法
2015/07/23 PHP
php实现的双色球算法示例
2017/06/20 PHP
PHP常见字符串操作函数与用法总结
2019/03/04 PHP
分享20多个很棒的jQuery 文件上传插件或教程
2011/09/04 Javascript
Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试
2012/02/13 Javascript
jQuery动态添加 input type=file的实现代码
2012/06/14 Javascript
js验证是否为数字的总结
2013/04/14 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
2014/01/24 Javascript
js中自定义方法实现停留几秒sleep
2014/07/11 Javascript
详解AngularJS中的作用域
2015/06/17 Javascript
JQuery动态添加Select的Option元素实现方法
2016/08/29 Javascript
form+iframe解决跨域上传文件的方法
2016/11/18 Javascript
react性能优化达到最大化的方法 immutable.js使用的必要性
2017/03/09 Javascript
js实现canvas图片与img图片的相互转换的示例
2017/08/31 Javascript
Node调用Java的示例代码
2017/09/20 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
2018/08/28 Javascript
关于vue利用postcss-pxtorem进行移动端适配的问题
2019/11/20 Javascript
js事件机制----捕获与冒泡机制实例分析
2020/05/22 Javascript
[01:48]DOTA2 2015国际邀请赛中国区预选赛第二日战报
2015/05/27 DOTA
python类:class创建、数据方法属性及访问控制详解
2016/07/25 Python
python 生成器协程运算实例
2017/09/04 Python
numpy 进行数组拼接,分别在行和列上合并的实例
2018/05/08 Python
基于DataFrame改变列类型的方法
2018/07/25 Python
如何用Python来理一理红楼梦里的那些关系
2019/08/14 Python
pytorch 限制GPU使用效率详解(计算效率)
2020/06/27 Python
解决python 虚拟环境删除包无法加载的问题
2020/07/13 Python
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
平面设计师工作职责范文
2013/12/03 职场文书
集体婚礼证婚词
2014/01/13 职场文书
物业保安员岗位职责制度
2014/01/30 职场文书
合伙经营协议书范本
2014/04/18 职场文书
安全负责人任命书
2014/06/06 职场文书
销售行政专员岗位职责
2014/06/10 职场文书
公司离职证明标准范本
2014/10/05 职场文书
第一书记观后感
2015/06/08 职场文书