python 实现whois功能

作者: 2hei 发表于2009年4月 4日 12:24
版权声明: 可以转载, 转载时务必以超链形式标明文章原始出处和作者信息及版权声明
http://www.2hei.net/mt/2009/04/python-whois.html

Linux下使用whois domain.name 即可获得该域名的注册信息,其实python也可以实现这个操作。

原理:调用python的socket模块,连接whois server,交互式输入需要查询的域名,获得返回的结果即可。

如同使用telnet:

$telnet whois.internic.net 43
Trying 199.7.51.74...
Connected to whois.internic.net.
Escape character is '^]'.
google.com

Whois Server Version 2.0

Domain names in the .com and .net domains can now be registered
with many different competing registrars. Go to http://www.internic.net
for detailed information.

GOOGLE.COM.ZZZZZ.GET.LAID.AT.WWW.SWINGINGCOMMUNITY.COM
GOOGLE.COM.ZZZZZ.DOWNLOAD.MOVIE.ONLINE.ZML2.COM
GOOGLE.COM.ZOMBIED.AND.HACKED.BY.WWW.WEB-HACK.COM
... ...
--------------------------------

下面是python代码


#!/usr/bin/python
#whois.py
import sys
import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

#for com,net后缀的域名
s.connect(("whois.internic.net", 43))
#for .org 后缀的域名
#s.connect(("whois.publicinterestregistry.net", 43))
#for .cn 后缀的域名
#s.connect(("whois.cnnic.net.cn", 43))
'''另外其他后缀的whois server暂时还没有找到,下面的一些whois server,应该是有ip访问许可,并不对普通用户开放。
'''
#s.connect(("whois.networksolutions.com", 43))
#s.connect(("whois.onlinenic.com", 43))
#s.connect(("grs.hichina.com",43))

s.send(sys.argv[1] + "\r\n")
response = ''
while True:
    data = s.recv(4096)
    response += data
    if data == '':
        break
s.close()
print response

| | Comments (0) | TrackBacks (1)

发表一个评论

关于这篇文章

这篇文章由2hei2009年4月 4日 12:24发布.

上一篇:python use mysql

下一篇:linux下取得前3天前1小时前一分钟的时间(BT想法)

回到首页 或者查看归档文章

  • Powered by FeedBurner
  • Add to Google Reader or Homepage
  • Add to My AOL
  • Subscribe in NewsGator Online
  • del.icio.us/2heidel.icio.us/2hei
  • Subscribe to feed feeds