我试图获取有关某些主机名的信息,例如注册人所在的国家/地区。我找到了应该做这件事的IPWhois,但显然它并没有给我预期的数据。
例如,我想知道哪个国家与诺基亚有关(答案:芬兰)。我知道他们的主机名是nokia.com。所以我试过这个:
import socket
from ipwhois import IPWhois
from pprint import pprint
ip = socket.gethostbyname('nokia.com')
obj = IPWhois(ip)
pprint(obj.lookup_rdap(depth=1))
可悲的是,这些人不会显示有关诺基亚的任何信息,而是关于美国境内的托管信息。
在Ubuntu网络工具中使用Whois,我可以看到:
[…]
Registrant Name: Nokia Corporation
Registrant Organization: Nokia Corporation
Registrant Street: P.O. Box 226, Nokia Group
Registrant City: Espoo
Registrant State/Province: Espoo
Registrant Postal Code: 00045
Registrant Country: FI
[…]
有没有办法获得这种数据?
[编辑] 该脚本应该在Ubuntu服务器上运行(从12.04开始)。正如所建议的,我可以使用子进程库来调用check_output,例如:
from subprocess import check_output
output = check_output(['whois', 'nokia.com'])
然后我需要处理输出,因为它可能与注册商不同。
答案 0 :(得分:0)
IPWhois用于查找自己的IP地址所有权。 Whois用于查找域名的所有权。
尝试使用python-whois,如下所示:
In [15]: import whois
In [16]: w = whois.whois('nokia.com')
In [17]: for key in ('name', 'org', 'address', 'city', 'country'): print w[key]
Nokia Corporation
Nokia Corporation
P.O. Box 226, Nokia Group
Espoo
FI
In [18]: