从主机名获取注册人地址?

时间:2016-12-02 16:42:59

标签: python python-2.7 whois

我试图获取有关某些主机名的信息,例如注册人所在的国家/地区。我找到了应该做这件事的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'])

然后我需要处理输出,因为它可能与注册商不同。

1 个答案:

答案 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]: