关键字:python3 域名查询 域名查询接口 whois查询
原文:http://www.cnblogs.com/txw1958/archive/2012/08/31/python3-domain-whois.html

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>

2.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&nbsp;&nbsp;
<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>

python3实现域名查询和whois查询的更多相关文章

  1. hosts文件的作用 whois查询域名信息

      Whois查询域名信息 在操作系统中的路径:Window98—在Windows目录下Windows 2000/XP—在C:\WINDOWS\system32\drivers\etc目录下 内容:包 ...

  2. PHP域名whois查询代码(数据源万网、新网)

    对于whois查询,数据来自万网.新网,数据也比较权威,需要的朋友可以参考下. 万网 whois(使用的接口为万网提供合法接口) function whois_hichina($domain) {  ...

  3. 《Advanced Bash-scripting Guide》学习(十):利用whois查询域名信息

    本文所选的例子来自于<Advanced Bash-scripting Gudie>一书,译者 杨春敏 黄毅 Example 4-6. wh,whois域名查询 #!/bin/bash #做 ...

  4. whois 查询 API

    项目介绍 免费Whois查询接口,完全开放 API接口,返回JSON格式数据(支持POST,GET方式) 网页查询接口(支持POST,GET方式) 测试接口 页面: http://whois.tt80 ...

  5. 根据域名查注册人信息,查询邮箱下注册过哪些IP,社工渗透,获取个人信息

    根据域名查询注册人信息 举个例子.随便找一个网站 iappp.cn 通过whois查询,得到以下信息 我们可以得知这个域名的注册商(腾讯云),以及注册人真实姓名(也有可能是假的),还有注册人邮箱等等一 ...

  6. python3开发进阶-Django框架中的ORM的常用操作的补充(F查询和Q查询,事务)

    阅读目录 F查询和Q查询 事务 一.F查询和Q查询 1.F查询 查询前的准备 class Product(models.Model): name = models.CharField(max_leng ...

  7. 子域名爆破&C段查询&调用Bing查询同IP网站

    在线子域名爆破 <?php function domainfuzz($domain) { $ip = gethostbyname($domain); preg_match("/\d+\ ...

  8. Web框架之Django_05 模型层了解(单表查询、多表查询、聚合查询、分组查询)

    摘要: 单表查询 多表查询 聚合查询 分组查询 一.Django ORM 常用字段和参数: 常用字段:#AutoFieldint自增列,必须填入参数primary_key = True,当model中 ...

  9. day04 mysql单表查询 多表查询 pymysql的使用

    day04 mysql pymysql   一.单表查询     1.having过滤         一般用作二次筛选             也可以用作一次筛选(残缺的: 只能筛选select里面 ...

随机推荐

  1. Java反射学习总结四(动态代理使用实例和内部原理解析)

    通过上一篇文章介绍的静态代理Java反射学习总结三(静态代理)中,大家可以发现在静态代理中每一个代理类只能为一个接口服务,这样一来必然会产生过多的代理,而且对于每个实例,如果需要添加不同代理就要去添加 ...

  2. 21、IIS声卡驱动程序

    声卡芯片的数据通道一般都是IIS接口,但是控制音量等控制信息的接口都不相同 (新内核在linux-3.4.2\sound\soc\codecs\uda134x.c) uda134x_codec_pro ...

  3. [Angular2] Build reuseable template with ngTemplateOutlet

    We can build a template, use this template and pass in different context to make it reuseable: <t ...

  4. hdu 4406 费用流

    这题问题就是当前时刻究竟选择哪门课程,易知选择是和分数有关的,而且是一个变化的权值,所以能够用拆点的方式,把从基础分到100分都拆成点.但若这样拆点的话,跑费用流时就必须保证顺序.这样就麻烦了..观察 ...

  5. php 下载图片到服务器

    function saveImage($path) { if(!preg_match('/\/([^\/]+\.[a-z]{3,4})$/i',$path,$matches)) die('Use im ...

  6. 洛谷 P1709 隐藏口令Hidden Password

    ->题目链接 题解: 贪心+字符串 #include<iostream> #include<cstring> #define N 5000005 using namesp ...

  7. 浅谈java中异常抛出后代码是否会继续执行

    问题 今天遇到一个问题,在下面的代码中,当抛出运行时异常后,后面的代码还会执行吗,是否需要在异常后面加上return语句呢? public void add(int index, E element) ...

  8. VMware虚拟机12安装linux系统详细教程

    亲测有效,附图: 工具/原料 VM ware workstation12虚拟机(百度下载) 深度linux镜像ios系统文件 链接:https://pan.baidu.com/s/1RY1Plgru4 ...

  9. 微信开发学习日记(六):weiphp框架

    最近重点在看weiphp这个开源的第三方微信公众平台框架. 在网上找微信资料,找到了这个.很早之前,就初步学习了Thinkphp和Onethink2个开源框架,当看到weiphp是用这2个框架开发的时 ...

  10. ajax跳转到新的jsp页面(局部刷新)

    ajax可以实现局部刷新页面,即在不刷新整个页面的情况下更新页面的局部信息. 项目中遇到一个问题:在用户列表也,当点击某个按钮时需要去查询用户的信息,查询成功跳转到用户详情界面:查询失败,则在原页面弹 ...