0

此代码返回有限值的有效负载

2.4.0 :001 > require 'whois'; require 'whois-parser'
 => true
2.4.0 :002 > client = Whois::Client.new(timeout: 10)
 => #<Whois::Client:0x007f87f1075910 @timeout=10, @settings={}>
2.4.0 :003 > results = client.lookup("stackoverflow.com")
 => "   Domain Name: STACKOVERFLOW.COM\r\n # ...

我从该字符串中截断的三个细节是:

  1. 此域的 WHOIS 记录注册商是 whois.name.com 。
  2. 注册表是 Verisign。
  3. 威瑞信返回的详细信息不如 name.com。

这似乎等于

whois -h whois.verisign-grs.com stackoverflow.com

相对

whois -h whois.name.com stackoverflow.com

这可以在许多域中重复,例如 facebook.com 或 daringfireball.net。鉴于注册服务商包含的信息比注册管理机构更多,那么获取这些额外信息的最佳方式是什么?

显然,我可以从注册商那里获取原始字符串并尽我所能进行解析。但是,whois gem 和所有其他 Ruby 解决方案是否从未解决过从 Registrars 获取完整可用记录的需求?如果没有,我如何使用 whois gem 的内置解析来检查来自 Registrars 的记录?

4

1 回答 1

0

.COM 是一个精简的 whois 系统。也就是说,您首先联系 Verisign,您获得的 whois 响应包含您要查询的下一个 whois 服务器的主机。

因此,最终的 whois 响应是来自 2 个服务器的响应的组合。

为了提取所有详细信息,您需要为您获得响应的每台服务器配备一个解析器。具体来说,您的情况是 Verisign 和 Name.com。

该库有一个 Verisign 解析器,但没有 Name.com 解析器。因此,它无法从来自 Name.com https://github.com/weppos/whois-parser/tree/master/lib/whois/parsers的响应中提取详细信息

您可以为 Name.com 定义一个特定的解析器,该库将尝试从中获取详细信息。示例是 Enom.com 和 GoDaddy.com 解析器: https ://github.com/weppos/whois-parser/blob/master/lib/whois/parsers/whois.enom.com.rb

于 2017-10-17T09:09:38.240 回答