使用常见 GNU/Linux 发行版(例如 Fedora/Debian/Ubuntu/etc)中提供的命令行工具,是否有一种通用方法可以获取某些特定 WHOIS 字段(例如注册人的组织名称)的值,理想情况下无需构建一个硬编码的自定义 WHOIS 解析器来处理每个注册表输出之间的差异?
这似乎值得一问,因为命令的输出whois
似乎不太一致。例如,比较:
$ whois trigger.io
[...]
Owner OrgName : Amir Nathoo
[...]
和:
$ whois facebook.com
[...]
Registrant Organization: Facebook, Inc.
[...]
相反,我希望能够作为参数传递给某些命令:
- 域名
- 所需字段
并使输出只是所需字段的值。例如,根据上面的例子,类似:
$ some_whois_command -field organization_name trigger.io
Amir Nathoo
$ some_whois_command -field organization_name facebook.com
Facebook, Inc.
这可能吗?
理想情况下,我希望解决方案以whois
命令为中心,例如使用-i
、-q
、-t
和/或 的一些适当用法-v
,因为我想学习如何有效地使用这些选项。不过,如果有必要,我会接受另一个正确的解决方案。
答案1
问题似乎至少有两个方面:
- WHOIS 响应不共享通用模式,并且
- 缺乏能够解析 WHOIS 响应并将其字段(例如使用合适的本体)映射到单个模式的 WHOIS 客户端。这红宝石 Whois项目是我发现的最广泛的努力。其目的是为 500 多个不同的 WHOIS 服务器中的每一个提供一个解析器,它的开发者值得巨大的赞誉,但这项工作仍在进行中。
这是令人遗憾的事态。
这IETF 的针对这一问题和其他 WHOIS 问题提出的解决方案被称为注册数据访问协议 (RDAP)。
引用RFC 7485,这解释了 RDAP 的基本原理:
在本文件发布时,域名空间中已有 200 多个国家代码
顶级域名 (ccTLD) 和 400 多个通用顶级域名(gTLD)。
不同的域名
注册管理机构可能有不同的 WHOIS 响应对象和格式。 对所有这些数据格式的共同理解对于 为每个对象构建单一数据模型
至关重要。
(强调我的。)
不幸的是,虽然大多数(全部?)TLD 注册机构为其子域提供 WHOIS 服务器,迄今为止,只有两个TLD 注册管理机构为其子域正式部署 RDAP 服务器:CZNIC 适用于 .cz 域,NIC Argentina 适用于 .ar 域。因此,这(还)不是广泛适用的 TLD 解决方案。我们只能希望所有其他注册管理机构能够尽快部署 RDAP 服务器。
至于软件,到目前为止我发现的唯一适用于 POSIX 系统的 RDAP 命令行客户端是nicinfo
。
答案2
你可以使用Python
pip install whois
例如,
#!/bin/python
import whois
print whois.whois('www.facebook.com')['city']
答案3
您对哪些 TLD 的哪些领域感兴趣?对 .com、.net 和 .org 进行快速检查,实际数据字段具有相同的名称...对于 whois foo.org 来说很容易 | grep“注册人组织:”或您关心的任何字段。
如果你需要一个脚本,比如
#!/bin/bash
if [ $# -ne 2 ]
then
echo Usage: $0 fieldcode domain
exit
fi
case $1 in
"ro")
whois $2 | grep "Registrant Organization:"
;;
"te")
whois $2 | grep "Tech Email:"
;;
esac
# or use simple if-thens
if [ $1 == "r" ]
then
whois $2 | grep "Registrant "
fi
这给出了类似的输出
$ ./whoisg r myfqdn.org
Registrant ID: go2016965629
Registrant Name: Contact Privacy Inc. Customer 1241082755
Registrant Organization: Contact Privacy Inc. Customer 1241082755
Registrant Street: 96 Mowat Ave
Registrant City: Toronto
Registrant State/Province: ON
Registrant Postal Code: M4K 3K1
Registrant Country: CA
Registrant Phone: +1.4165385487
Registrant Phone Ext:
Registrant Fax:
Registrant Fax Ext:
Registrant Email: [email protected]
或者
$ ./whoisg te myfqdn.org
Tech Email: [email protected]
华泰