Ruby WHOIS gem注册表不捕获注册商信息。任何替代方案?

时间:2017-10-12 14:01:09

标签: ruby whois whois-ruby

此代码返回有限值的有效内容

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. Verisign不会返回与name.com一样多的详细信息。
  4. 这似乎等于

    之间的差异
    whois -h whois.verisign-grs.com stackoverflow.com
    

    whois -h whois.name.com stackoverflow.com
    

    这可以针对许多域重复,例如facebook.com或daringfireball.net。鉴于注册商包含的信息多于注册管理机构,获取其他信息的最佳方式是什么?

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

1 个答案:

答案 0 :(得分:1)

.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