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实现拉钩网上的FizzBuzzWhizz问题示例
May 05 Python
Python模拟登陆实现代码
Jun 14 Python
Python二叉树定义与遍历方法实例分析
May 25 Python
python中logging模块的一些简单用法的使用
Feb 22 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
Mar 01 Python
python使用opencv在Windows下调用摄像头实现解析
Nov 26 Python
关于初始种子自动选取的区域生长实例(python+opencv)
Jan 16 Python
python实现高斯投影正反算方式
Jan 17 Python
Python逐行读取文件内容的方法总结
Feb 14 Python
selenium+python配置chrome浏览器的选项的实现
Mar 18 Python
Python使用正则表达式实现爬虫数据抽取
Aug 17 Python
Python实现迪杰斯特拉算法过程解析
Sep 18 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
ftp类(myftp.php)
2006/10/09 PHP
用PHP来计算某个目录大小的方法
2014/04/01 PHP
javascript实现的鼠标链接提示效果生成器代码
2007/06/28 Javascript
javascript 建设银行登陆键盘
2008/06/10 Javascript
说明你的Javascript技术很烂的五个原因
2011/04/26 Javascript
jQuery 删除/替换DOM元素的几种方式
2014/05/20 Javascript
分享网页检测摇一摇实例代码
2016/01/14 Javascript
AngularJS动态加载模块和依赖的方法分析
2016/11/08 Javascript
使用vue.js编写蓝色拼图小游戏
2017/03/17 Javascript
微信小程序 数据遍历的实现
2017/04/05 Javascript
jquery实现图片轮播器
2017/05/23 jQuery
[03:24]CDEC.Y赛前采访 努力备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
[10:21]2018DOTA2国际邀请赛寻真——Winstrike
2018/08/11 DOTA
[01:07:19]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第一场 1月19日
2021/03/11 DOTA
[56:13]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第一场 1月10日
2021/03/11 DOTA
讲解python参数和作用域的使用
2013/11/01 Python
Python中replace方法实例分析
2014/08/20 Python
在python win系统下 打开TXT文件的实例
2018/04/29 Python
Python创建一个空的dataframe,并循环赋值的方法
2018/11/08 Python
python3 实现一行输入,空格隔开的示例
2018/11/14 Python
python实现根据文件关键字进行切分为多个文件的示例
2018/12/10 Python
pandas通过字典生成dataframe的方法步骤
2019/07/23 Python
Django如何重置migration的几种情景
2021/02/24 Python
吃透移动端 1px的具体用法
2019/12/16 HTML / CSS
Room Mate Hotels美国:西班牙酒店品牌
2018/04/10 全球购物
来自Ocado的宠物商店:Fetch
2018/07/10 全球购物
澳洲网红粉泥面膜:Sand & Sky
2019/08/13 全球购物
安全标准化实施方案
2014/02/20 职场文书
高级销售求职信
2014/02/21 职场文书
本科毕业自我鉴定
2014/03/20 职场文书
超市开店计划书
2014/04/26 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书
合同意向书范本
2014/07/30 职场文书
大学生军训自我鉴定范文
2014/09/18 职场文书
房屋租赁协议书(标准版)
2014/10/02 职场文书
大学生奶茶店创业计划书
2019/06/25 职场文书