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 相关文章推荐
在树莓派2或树莓派B+上安装Python和OpenCV的教程
Mar 30 Python
python实现自动登录人人网并采集信息的方法
Jun 28 Python
黑科技 Python脚本帮你找出微信上删除你好友的人
Jan 07 Python
python开发简易版在线音乐播放器
Mar 03 Python
Python设计模式之工厂模式简单示例
Jan 09 Python
python自动发邮件库yagmail的示例代码
Feb 23 Python
Python发展史及网络爬虫
Jun 19 Python
Django框架基础模板标签与filter使用方法详解
Jul 23 Python
python logging设置level失败的解决方法
Feb 19 Python
构建高效的python requests长连接池详解
May 02 Python
Django如何使用redis作为缓存
May 21 Python
python面向对象版学生信息管理系统
Jun 24 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代码质量36计
2012/09/05 PHP
php中的mongodb select常用操作代码示例
2014/09/06 PHP
PHP的消息通信机制测试实例
2016/11/10 PHP
详解PHP swoole process的使用方法
2017/08/26 PHP
Laravel配合jwt使用的方法实例
2020/10/25 PHP
动态创建script在IE中缓存js文件时导致编码的解决方法
2014/05/04 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
c#+jquery实现获取radio和checkbox的值
2020/09/12 Javascript
JS判断字符串包含的方法
2015/05/05 Javascript
如何利用JSHint减少JavaScript的错误
2016/08/23 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
Vue SPA单页应用首屏优化实践
2018/06/28 Javascript
vue项目base64字符串转图片的实现代码
2018/07/13 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
2019/03/29 Javascript
JavaScript 中判断变量是否为数字的示例代码
2020/10/22 Javascript
Python创建xml的方法
2015/03/10 Python
Python中random模块用法实例分析
2015/05/19 Python
使用Pyinstaller的最新踩坑实战记录
2017/11/08 Python
你真的了解Python的random模块吗?
2017/12/12 Python
Python爬虫将爬取的图片写入world文档的方法
2018/11/07 Python
PyGame贪吃蛇的实现代码示例
2018/11/21 Python
python django下载大的csv文件实现方法分析
2019/07/19 Python
多个python文件调用logging模块报错误
2020/02/12 Python
python实现画图工具
2020/08/27 Python
使用phonegap检测网络状态的方法
2017/03/30 HTML / CSS
HTML5梦幻之旅——炫丽的流星雨效果实现过程
2013/08/06 HTML / CSS
美国台面电器和厨具品牌:KitchenAid
2019/04/12 全球购物
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
策划创业计划书
2014/02/06 职场文书
感恩节红领巾广播稿
2014/02/11 职场文书
学校火灾防控方案
2014/06/09 职场文书
挂职个人工作总结
2015/03/05 职场文书
Vue实现动态查询规则生成组件
2021/05/27 Vue.js
详解Python为什么不用设计模式
2021/06/24 Python
Python实现批量自动整理文件
2022/03/16 Python
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL