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 连连看连接算法
Nov 22 Python
python中常用的各种数据库操作模块和连接实例
May 29 Python
深入了解Python数据类型之列表
Jun 24 Python
Python 提取dict转换为xml/json/table并输出的实现代码
Aug 28 Python
Flask框架URL管理操作示例【基于@app.route】
Jul 23 Python
对Python 3.5拼接列表的新语法详解
Nov 08 Python
使用python实现语音文件的特征提取方法
Jan 09 Python
详解Python odoo中嵌入html简单的分页功能
May 29 Python
python求质数列表的例子
Nov 24 Python
如何将json数据转换为python数据
Sep 04 Python
matplotlib更改窗口图标的方法示例
Feb 03 Python
python 利用PyAutoGUI快速构建自动化操作脚本
May 31 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函数
2006/12/06 PHP
使用swoole扩展php websocket示例
2014/02/13 PHP
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
jQuery的实现原理的模拟代码 -5 Ajax
2010/08/07 Javascript
3款实用的在线JS代码工具(国外)
2012/03/15 Javascript
JavaScript设计模式之外观模式介绍
2014/12/28 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
js中getBoundingClientRect的作用及兼容方案详解
2018/02/01 Javascript
Vue 动态设置路由参数的案例分析
2018/04/24 Javascript
JavaScript设计模式之单例模式简单实例教程
2018/07/02 Javascript
Javascript读取上传文件内容/类型/字节数
2019/04/30 Javascript
jQuery删除/清空指定元素的所有子节点实例代码
2019/07/04 jQuery
javascript实现视频弹幕效果(两个版本)
2019/11/28 Javascript
在vue中封装的弹窗组件使用队列模式实现方法
2020/07/23 Javascript
[02:38]DOTA2英雄基础教程 噬魂鬼
2014/01/03 DOTA
[12:29]2018国际邀请赛 开幕秀
2018/08/22 DOTA
python实现360的字符显示界面
2014/02/21 Python
Python3读取文件常用方法实例分析
2015/05/22 Python
Python模拟脉冲星伪信号频率实例代码
2018/01/03 Python
python实现飞机大战微信小游戏
2020/03/21 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
2019/02/08 Python
wxpython多线程防假死与线程间传递消息实例详解
2019/12/13 Python
PyTorch 对应点相乘、矩阵相乘实例
2019/12/27 Python
使用pytorch和torchtext进行文本分类的实例
2020/01/08 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
2020/01/12 Python
Python pathlib模块使用方法及实例解析
2020/10/05 Python
HTML5中的nav标签学习笔记
2016/06/24 HTML / CSS
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
旅游管理实习自我鉴定
2013/09/29 职场文书
男女朋友协议书
2014/04/23 职场文书
和谐家庭演讲稿
2014/05/24 职场文书
大学新闻系求职信
2014/06/03 职场文书
安全知识竞赛主持词
2015/06/30 职场文书
幼儿园小班教学反思
2016/03/03 职场文书
职工的安全责任书范文!
2019/07/02 职场文书
Python获取指定日期是"星期几"的6种方法
2022/03/13 Python