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图像处理之反色实现方法
May 30 Python
Python多进程分块读取超大文件的方法
Apr 13 Python
python动态加载包的方法小结
Apr 18 Python
浅谈python字符串方法的简单使用
Jul 18 Python
详解常用查找数据结构及算法(Python实现)
Dec 09 Python
python+matplotlib演示电偶极子实例代码
Jan 12 Python
对python:print打印时加u的含义详解
Dec 15 Python
Python2和Python3之间的str处理方式导致乱码的讲解
Jan 03 Python
详解Python3 基本数据类型
Apr 19 Python
Python如何实现转换URL详解
Jul 02 Python
Python类和实例的属性机制原理详解
Mar 21 Python
Pycharm pyuic5实现将ui文件转为py文件,让UI界面成功显示
Apr 08 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的SimpleXML方法读写XML接口文件实例解析
2014/06/16 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
jQuery 打造动态渐变按钮 详细图文教程
2010/04/25 Javascript
javascript如何动态加载表格与动态添加表格行
2013/11/27 Javascript
php析构函数的具体用法小结
2014/03/11 Javascript
javascript event在FF和IE的兼容传参心得(绝对好用)
2014/07/10 Javascript
从数据库读取数据后将其输出成html标签的三种方法
2014/10/13 Javascript
完善的jquery处理机制
2016/02/21 Javascript
JS实现的自定义水平滚动字体插件完整实例
2016/06/17 Javascript
phantomjs导出html到pdf的方法总结
2017/10/19 Javascript
Angular2整合其他插件的方法
2018/01/20 Javascript
React Native 图片查看组件的方法
2018/03/01 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
2018/04/26 Javascript
Vue 使用 Mint UI 实现左滑删除效果CellSwipe
2018/04/27 Javascript
Vue2.0实现调用摄像头进行拍照功能 exif.js实现图片上传功能
2018/04/28 Javascript
微信小程序定位当前城市的方法
2018/07/19 Javascript
小程序云开发教程如何使用云函数实现点赞功能
2019/05/18 Javascript
如何使用vue slot创建一个模态框的实例代码
2020/05/24 Javascript
vue中后端做Excel导出功能返回数据流前端的处理操作
2020/09/08 Javascript
[01:01:41]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第二场 1月31日
2021/03/11 DOTA
Python实现堆排序的方法详解
2016/05/03 Python
python使用筛选法计算小于给定数字的所有素数
2018/03/19 Python
tensorflow: variable的值与variable.read_value()的值区别详解
2018/07/30 Python
django admin组件使用方法详解
2019/07/19 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
python 字典访问的三种方法小结
2019/12/05 Python
Python selenium页面加载慢超时的解决方案
2020/03/18 Python
Python通过zookeeper实现分布式服务代码解析
2020/07/22 Python
如何利用find命令查找文件
2016/11/18 面试题
大二法英学生职业生涯规划范文
2014/02/27 职场文书
食品安全处置方案
2014/06/14 职场文书
2015年保险公司工作总结
2015/04/24 职场文书
525心理健康活动总结
2015/05/08 职场文书
2015年车间管理工作总结
2015/07/23 职场文书
详解如何在Canvas中添加事件的方法
2021/04/17 Javascript
十大最强格斗系宝可梦,超梦X仅排第十,第二最重格斗礼仪
2022/03/18 日漫