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中函数及默认参数的定义与调用操作实例分析
Jul 25 Python
Python编写Windows Service服务程序
Jan 04 Python
TensorFlow平台下Python实现神经网络
Mar 10 Python
Python实现使用卷积提取图片轮廓功能示例
May 12 Python
python调用外部程序的实操步骤
Mar 04 Python
Python configparser模块配置文件过程解析
Mar 03 Python
Python MOCK SERVER moco模拟接口测试过程解析
Apr 13 Python
Python自定义聚合函数merge与transform区别详解
May 26 Python
Django实现任意文件上传(最简单的方法)
Jun 03 Python
PyQt5 QDockWidget控件应用详解
Aug 12 Python
Django怎么在admin后台注册数据库表
Nov 14 Python
python3 os进行嵌套操作的实例讲解
Nov 19 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 组件化编程技巧
2009/06/06 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
2013/06/24 PHP
php支付宝接口用法分析
2015/01/04 PHP
Zend Framework数据库操作方法实例总结
2016/12/11 PHP
PHP内置函数生成随机数实例
2019/01/18 PHP
PHP封装的mysqli数据库操作类示例
2019/02/16 PHP
form表单只提交数据而不进行页面跳转的解决方案
2013/09/18 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
2013/11/03 Javascript
JS获取及设置TextArea或input文本框选择文本位置的方法
2015/03/24 Javascript
jQuery插件支持同一页面被多次调用
2016/02/14 Javascript
纯JS代码实现一键分享功能
2016/04/20 Javascript
特殊日期提示功能的实现方法
2016/06/16 Javascript
vuejs如何配置less
2017/04/25 Javascript
基于 Bootstrap Datetimepicker 联动
2017/08/03 Javascript
Three.js基础学习之场景对象
2017/09/27 Javascript
Vue移动端右滑屏幕返回上一页附源码下载
2019/06/26 Javascript
element 中 el-menu 组件的无限极循环思路代码详解
2020/04/26 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
零基础写python爬虫之使用Scrapy框架编写爬虫
2014/11/07 Python
在Python中处理字符串之isdecimal()方法的使用
2015/05/20 Python
python smtplib发送带附件邮件小程序
2018/05/22 Python
Python读取数据集并消除数据中的空行方法
2018/07/12 Python
Sanic框架配置操作分析
2018/07/17 Python
Python shelve模块实现解析
2019/08/28 Python
python实现音乐播放器 python实现花框音乐盒子
2020/02/25 Python
Python做图像处理及视频音频文件分离和合成功能
2020/11/24 Python
Django数据统计功能count()的使用
2020/11/30 Python
武汉瑞得软件笔试题
2015/10/27 面试题
525心理活动总结
2014/07/04 职场文书
学生违纪检讨书200字
2014/10/21 职场文书
营销与策划实训报告
2014/11/05 职场文书
房地产公司财务总监岗位职责
2015/04/03 职场文书
2015年物业管理工作总结
2015/04/23 职场文书
升学宴家长答谢词
2015/09/29 职场文书
小学六一儿童节活动开幕词
2016/03/04 职场文书
Java 垃圾回收超详细讲解记忆集和卡表
2022/04/08 Java/Android