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中__init__和__new__的区别详解
Jul 09 Python
Python中的lstrip()方法使用简介
May 19 Python
python安装教程 Pycharm安装详细教程
May 02 Python
matplotlib subplots 设置总图的标题方法
May 25 Python
Python3+Appium实现多台移动设备操作的方法
Jul 05 Python
cProfile Python性能分析工具使用详解
Jul 22 Python
Python实现的爬取豆瓣电影信息功能案例
Sep 15 Python
pymysql 开启调试模式的实现
Sep 24 Python
浅析python标准库中的glob
Mar 13 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
Jun 01 Python
记一次Django响应超慢的解决过程
Sep 17 Python
Python实现位图分割的效果
Nov 20 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 数组使用详解 推荐
2011/06/02 PHP
PHP使用pdo实现事务处理操作示例
2018/09/05 PHP
php中数组最简单的使用方法
2020/12/27 PHP
JSQL 批量图片切换的实现代码
2010/05/05 Javascript
javascript实现自动填写表单实例简析
2015/12/02 Javascript
JS获取url参数、主域名的方法实例分析
2016/08/03 Javascript
vue实现微信分享朋友圈,发送朋友的示例讲解
2018/02/10 Javascript
基于vue的tab-list类目切换商品列表组件的示例代码
2020/02/14 Javascript
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
python中Genarator函数用法分析
2015/04/08 Python
浅析python中的分片与截断序列
2016/08/09 Python
Python中生成Epoch的方法
2017/04/26 Python
Python3使用正则表达式爬取内涵段子示例
2018/04/22 Python
python批量替换多文件字符串问题详解
2018/04/22 Python
Python处理菜单消息操作示例【基于win32ui模块】
2018/05/09 Python
解决Python plt.savefig 保存图片时一片空白的问题
2019/01/10 Python
python自定义函数实现最大值的输出方法
2019/07/09 Python
在Pytorch中使用样本权重(sample_weight)的正确方法
2019/08/17 Python
利用python实现周期财务统计可视化
2019/08/25 Python
python实现布隆过滤器及原理解析
2019/12/08 Python
如何让python的运行速度得到提升
2020/07/08 Python
Python基于pyjnius库实现访问java类
2020/07/31 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
2020/12/04 Python
Python datetime模块的使用示例
2021/02/02 Python
一款纯css3实现的鼠标经过按钮特效教程
2014/11/09 HTML / CSS
德国最大的拼图在线商店:Puzzle.de
2016/12/17 全球购物
小天鹅官方商城:LittleSwan
2017/06/16 全球购物
应届医学毕业生求职信分享
2013/12/02 职场文书
大二学期个人自我评价
2014/01/13 职场文书
函授生自我鉴定
2014/03/25 职场文书
装配车间主任岗位职责
2015/04/08 职场文书
宣传委员竞选稿
2015/11/19 职场文书
建国70周年的心得体会(2篇)
2019/09/20 职场文书
Pytorch实现图像识别之数字识别(附详细注释)
2021/05/11 Python
Java 关于String字符串原理上的问题
2022/04/07 Java/Android
python内置模块之上下文管理contextlib
2022/06/14 Python