标签:
恐怕很多朋友跟我一样,使用python语言居然能实现whois服务器查询功能。下面我把代码和说明搬来给大家看看,有谁需要可以参考下。本来想直接从whois服务器查询的,但是发现要写socket 用43端口链接服务器,但是有些服务器的地址不清楚,而且查询命令貌似有改变所以不想折腾了,就想着直接用chinaz的页面实现一下算了。如下代码是在 win7下操作的,安装python3.2测试通过。
Python3.2实现whois查询功能的方法源码:
# -*- coding:utf-8 -*-
import urllib.request
def str_cut(str,startsep,endsep):
str1=str.split(startsep)[1]
str2=str1.split(endsep)[0]
return str2
def whois(host):
url=’http://whois.chinaz.com/’+host
data=urllib.request.urlopen(url).read()
data=data.decode()
if data.find(’<div id="whoisinfo" class="div_whois">’)==-1:
data="该域名未注册,目前可以注册"
else:
data=str_cut(data,’<div id="whoisinfo" class="div_whois">’,’</div>’)
data=data.replace(’<br/>’,’\\n’)[:-1]
return ’查询域名:’+host+’\\n’+’-’*60+’\\n’+data
def query():
host=input(’请输入域名不含"http://www.";(q/Q退出):’)[:-1]
#data=whois(host)
#print(data)
host=host.lower()
if host == ’q’:
exit()
else:
data=whois(host)
print(data)
input(’\\n输入enter继续...\\n’)
query()
query()
考虑到有些朋友在使用Python2.7版本,使用以上的代码会出现一些错误,我修改了一点,以便运行:
# -*- coding:utf-8 -*-
import urllib
def str_cut(str,startsep,endsep):
str1=str.split(startsep)[1]
str2=str1.split(endsep)[0]
return str2
def whois(host):
url=’http://whois.chinaz.com/’+host
data=urllib.urlopen(url).read()
if data.find(’<div id="whoisinfo" class="div_whois">’)==-1:
data="该域名未注册,目前可以注册"
else:
data=str_cut(data,’<div id="whoisinfo" class="div_whois">’,’</div>’)
data=data.replace(’<br/>’,’\\n’)
return ’查询域名:’+host+’\\n’+’-’*60+’\\n’+data
def query():
host=raw_input(’请输入域名不含"http://www.";(q/Q退出):’)
host=host.lower()
if host == ’q’:
exit()
else:
data=whois(host)
print(data)
raw_input(u’输入enter继续...\\n’)
query()
以上就是Python实现whois查询功能的方法,Python3和Python2都给出来了,希望能帮助到大家。
标签: