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 把数据 json格式输出的实例代码
Oct 31 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
Nov 30 Python
python 将数据保存为excel的xls格式(实例讲解)
May 03 Python
Python文件读写保存操作的示例代码
Sep 14 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
Mar 27 Python
python实现函数极小值
Jul 10 Python
Python 可变类型和不可变类型及引用过程解析
Sep 27 Python
Python多线程获取返回值代码实例
Feb 17 Python
Python sublime安装及配置过程详解
Jun 29 Python
Python经纬度坐标转换为距离及角度的实现
Nov 01 Python
详解vscode实现远程linux服务器上Python开发
Nov 10 Python
python 机器学习的标准化、归一化、正则化、离散化和白化
Apr 16 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
Syphon 使用方法
2021/03/03 冲泡冲煮
PHP中使用mktime获取时间戳的一个黑色幽默分析
2012/05/31 PHP
PHP实现APP微信支付的实例讲解
2018/02/10 PHP
JS 自动完成 AutoComplete(Ajax 查询)
2009/07/07 Javascript
拖动布局之保存布局页面cookies篇
2010/10/29 Javascript
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
2012/06/14 Javascript
常用javascript表单验证汇总
2020/07/20 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
2016/12/08 Javascript
利用百度地图API获取当前位置信息的实例
2017/11/06 Javascript
p5.js实现斐波那契螺旋的示例代码
2018/03/22 Javascript
JavaScript事件冒泡与事件捕获实例分析
2018/08/01 Javascript
微信小程序methods中定义的方法互相调用的实例代码
2018/08/07 Javascript
详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)
2019/01/07 Javascript
vue 路由守卫(导航守卫)及其具体使用
2020/02/25 Javascript
Vue数据双向绑定原理实例解析
2020/05/15 Javascript
[01:08]DOTA2“血战之命”预告片
2017/08/12 DOTA
详解python时间模块中的datetime模块
2016/01/13 Python
python库lxml在linux和WIN系统下的安装
2018/06/24 Python
Python实现正整数分解质因数操作示例
2018/08/01 Python
树莓派3 搭建 django 服务器的实例
2019/08/29 Python
python打印异常信息的两种实现方式
2019/12/24 Python
Python3基于plotly模块保存图片表格
2020/08/03 Python
使用python库xlsxwriter库来输出各种xlsx文件的示例
2020/09/01 Python
如何使用Python进行PDF图片识别OCR
2021/01/22 Python
Shell编程面试题
2016/05/29 面试题
工程现场管理求职自荐信
2013/10/02 职场文书
移动通信专业自荐信范文
2013/11/12 职场文书
家教广告词
2014/03/19 职场文书
专升本学生毕业自我鉴定
2014/10/04 职场文书
健康状况证明模板
2014/10/23 职场文书
关于社会实践的心得体会(2016最新版)
2016/01/25 职场文书
uwsgi+nginx代理Django无法访问静态资源的解决
2021/05/10 Servers
python入门学习关于for else的特殊特性讲解
2021/11/20 Python
一起来学习Python的元组和列表
2022/03/13 Python
我收到了德劲DE1107
2022/04/05 无线电