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 FTP操作类代码分享
May 13 Python
简单理解Python中基于生成器的状态机
Apr 13 Python
Django中几种重定向方法
Apr 28 Python
python获取当前日期和时间的方法
Apr 30 Python
MySQL最常见的操作语句小结
May 07 Python
Python的Django框架中settings文件的部署建议
May 30 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
Feb 08 Python
浅析Python pandas模块输出每行中间省略号问题
Jul 03 Python
浅析Python 读取图像文件的性能对比
Mar 07 Python
使用python socket分发大文件的实现方法
Jul 08 Python
python错误调试及单元文档测试过程解析
Dec 19 Python
python3中sorted函数里cmp参数改变详解
Mar 12 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
2020年4月放送!《Princess Connect Re:Dive》制作组 & 角色声优公开!
2020/03/06 日漫
《PHP编程最快明白》第六讲:Mysql数据库操作
2010/11/01 PHP
PHP下通过file_get_contents的代理使用方法
2011/02/16 PHP
PHP stripos()函数及注意事项的分析
2013/06/08 PHP
PHP中的多行字符串传递给JavaScript的两种方法
2014/06/19 PHP
PHP获取ttf格式文件字体名的方法示例
2019/03/06 PHP
PHP进阶学习之垃圾回收机制详解
2019/06/18 PHP
PHP大文件分块上传功能实例详解
2019/07/22 PHP
js option删除代码集合
2008/11/12 Javascript
WEB 浏览器兼容 推荐收藏
2010/05/14 Javascript
jquery实现预览提交的表单代码分享
2014/05/21 Javascript
Egret引擎开发指南之发布项目
2014/09/03 Javascript
JQuery中serialize() 序列化
2015/03/13 Javascript
js实现简单选项卡与自动切换效果的方法
2015/04/10 Javascript
基于javascript简单实现对身份证校验
2021/01/25 Javascript
JavaScript:Date类型全面解析
2016/05/19 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
2016/06/02 Javascript
基于JavaScript代码实现自动生成表格
2016/06/15 Javascript
微信小程序 页面跳转传参详解
2016/10/28 Javascript
微信小程序收藏功能的实现代码
2018/06/12 Javascript
微信小程序利用canvas 绘制幸运大转盘功能
2018/07/06 Javascript
使用vuepress搭建静态博客的示例代码
2019/02/14 Javascript
vue请求服务器数据后绑定不上的解决方法
2019/10/30 Javascript
[18:16]sakonoko 2017年卡尔集锦
2018/02/06 DOTA
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
python装饰器相当于函数的调用方式
2019/12/27 Python
浅析Python打包时包含静态文件处理方法
2021/01/15 Python
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
英国书籍、CD、DVD和游戏的第一道德零售商:Awesome Books
2020/02/22 全球购物
Linux上比较文件的命令都有哪些
2013/09/28 面试题
介绍一下Python中webbrowser的用法
2013/05/07 面试题
工厂厂长岗位职责
2013/11/08 职场文书
学校办公室主任职责
2013/12/27 职场文书
库房保管员岗位职责
2014/04/07 职场文书
小学运动会班级口号
2014/06/09 职场文书
2015年教务处干事工作总结
2015/07/22 职场文书