此代码返回有限值的有效内容
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 # ...
我从该字符串中截断的三个细节是:
这似乎等于
之间的差异whois -h whois.verisign-grs.com stackoverflow.com
与
whois -h whois.name.com stackoverflow.com
这可以针对许多域重复,例如facebook.com或daringfireball.net。鉴于注册商包含的信息多于注册管理机构,获取其他信息的最佳方式是什么?
显然,我可以从注册商处获取原始字符串并尽可能地解析。但是,拥有whois gem和所有其他Ruby解决方案从未满足从注册商那里获得完整可用记录的需求吗?如果没有,我如何使用whois gem的内置解析来检查注册商的记录?
答案 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