无需解析即可获取 WHOIS 数据字段?

无需解析即可获取 WHOIS 数据字段?

使用常见 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

问题似乎至少有两个方面:

这是令人遗憾的事态。

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]

华泰

相关内容