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中列表(list)操作方法汇总
Aug 18 Python
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
Apr 08 Python
在Python中处理字符串之isdigit()方法的使用
May 18 Python
python基于隐马尔可夫模型实现中文拼音输入
Apr 01 Python
用python实现的线程池实例代码
Jan 06 Python
对python PLT中的image和skimage处理图片方法详解
Jan 10 Python
python随机在一张图像上截取任意大小图片的方法
Jan 24 Python
简单了解Python3 bytes和str类型的区别和联系
Dec 19 Python
详解numpy1.19.4与python3.9版本冲突解决
Dec 15 Python
python绘制汉诺塔
Mar 01 Python
Django项目配置Memcached和Redis, 缓存选择哪个更有优势
Apr 06 Python
python xlwt模块的使用解析
Apr 13 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
怎样辨别一杯好咖啡
2021/03/03 新手入门
在PHP的图形函数中显示汉字
2006/10/09 PHP
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
2014/07/08 PHP
谈谈 PHP7新增功能
2015/12/16 PHP
php 数组随机取值的简单实例
2016/05/23 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
File文件控件,选中文件(图片,flash,视频)即立即预览显示
2009/04/09 Javascript
Javascript 的addEventListener()及attachEvent()区别分析
2009/05/21 Javascript
LazyForm jQuery plugin 定制您的CheckBox Radio和Select
2009/10/24 Javascript
Firebug入门指南(Firefox浏览器)
2010/08/21 Javascript
五段实用的js高级技巧
2011/12/20 Javascript
jquery插件开发之实现google+圈子选择功能
2014/03/10 Javascript
javascript抽象工厂模式详细说明
2014/12/16 Javascript
javascript中定义类的方法汇总
2014/12/28 Javascript
js预加载图片方法汇总
2015/06/15 Javascript
jQuery Html控件基本操作(日常收集整理)
2016/03/11 Javascript
jquery实现表格中点击相应行变色功能效果【实例代码】
2016/05/09 Javascript
浅谈bootstrap使用中的一些问题以及解决过程
2016/10/18 Javascript
微信小程序获取手机系统信息的方法【附源码下载】
2017/12/07 Javascript
详解React Native 屏幕适配(炒鸡简单的方法)
2018/06/11 Javascript
es6数值的扩展方法
2019/03/11 Javascript
全面分析JavaScript 继承
2019/05/30 Javascript
python局部赋值的规则
2013/03/07 Python
人机交互程序 python实现人机对话
2017/11/14 Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
2017/12/21 Python
基于Python中numpy数组的合并实例讲解
2018/04/04 Python
Python3并发写文件与Python对比
2019/11/20 Python
Vertbaudet西班牙网上商店:婴儿服装、童装、母婴用品和儿童家具
2019/10/16 全球购物
澳洲最大的时尚奢侈品电商平台:Cettire
2020/06/15 全球购物
银行内勤岗位职责
2014/04/09 职场文书
九一八事变演讲稿范文
2014/09/14 职场文书
小学校长个人总结
2015/03/03 职场文书
小学生安全保证书
2015/05/09 职场文书
城南旧事读书笔记
2015/06/29 职场文书
结婚司仪主持词
2015/06/29 职场文书