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 BeautifulSoup使用方法详解
Nov 21 Python
Python 爬虫学习笔记之正则表达式
Sep 21 Python
Python 12306抢火车票脚本
Feb 07 Python
Django 中使用流响应处理视频的方法
Jul 20 Python
使用Django2快速开发Web项目的详细步骤
Jan 06 Python
详解Python 函数如何重载?
Apr 23 Python
Python3 Tkinter选择路径功能的实现方法
Jun 14 Python
pytorch GAN生成对抗网络实例
Jan 10 Python
详解用python -m http.server搭一个简易的本地局域网
Sep 24 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
Oct 31 Python
Python控制台输出俄罗斯方块移动和旋转功能
Apr 18 Python
Python 处理表格进行成绩排序的操作代码
Jul 26 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
B2K与车机的中波PK
2021/03/02 无线电
ajax php 实现写入数据库
2009/09/02 PHP
php下连接ftp实现文件的上传、下载、删除文件实例代码
2010/06/03 PHP
Ajax+PHP快速上手及简单应用说明
2013/07/24 PHP
php 无限级分类 获取顶级分类ID
2016/03/13 PHP
PHP+Ajax实现的博客文章添加类别功能示例
2018/03/29 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
2020/11/10 PHP
JavaScript iframe的相互操作浅析
2009/10/14 Javascript
网页中可关闭的漂浮窗口实现可自行调节
2013/08/20 Javascript
js实现收缩菜单效果实例代码
2013/10/30 Javascript
Javascript 多浏览器兼容总结(实战经验)
2013/10/30 Javascript
jQuery拖拽div实现思路
2014/02/19 Javascript
javascript修改IMG标签的src问题
2014/03/28 Javascript
javascript学习笔记(二)数组和对象部分
2014/09/30 Javascript
vue.js入门教程之绑定class和style样式
2016/09/02 Javascript
jquery实现左右滑动式轮播图
2017/03/02 Javascript
JS实现预加载视频音频/视频获取截图(返回canvas截图)
2017/10/09 Javascript
Node.js中你不可不精的Stream(流)
2018/06/08 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
2019/04/11 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
JavaScript自定义超时API代码实例
2020/04/30 Javascript
关于angular浏览器兼容性问题的解决方案
2020/07/26 Javascript
Python单链表简单实现代码
2016/04/27 Python
python游戏地图最短路径求解
2019/01/16 Python
python实现一个函数版的名片管理系统过程解析
2019/08/27 Python
python图的深度优先和广度优先算法实例分析
2019/10/26 Python
Python hashlib加密模块常用方法解析
2019/12/18 Python
css3实现超立体3D图片侧翻倾斜效果
2014/04/16 HTML / CSS
HTML5+CSS设置浮动却没有动反而在中间且错行的问题
2020/05/26 HTML / CSS
世界上第一个水枕头:Mediflow
2018/12/06 全球购物
来自世界各地的饮料:Flavourly
2019/05/06 全球购物
.net笔试题
2014/03/03 面试题
请解释virtual关键字的含义
2015/06/17 面试题
如何用Java实现列出某个目录下的所有子目录
2015/07/20 面试题
监察建议书
2015/02/04 职场文书
院系推荐意见
2015/06/05 职场文书