我开始使用whoisrb,我注意到域名从一些注册人返回零联系信息。
例如:
domain_name = ARGV[0]
r = Whois.whois(domain_name)
t=r.registrant_contact
if t == nil
puts 'Registrant Contact is empty.'
end将返回“注册联系人为空”。试图访问联系人属性会导致一个错误,比如undefined method 'id' for nil:NilClass (NoMethodError)。
如果我检查正在返回的原始记录,puts r,我可以看到它正在获取厚记录,所以联系信息就在未解析的原始记录中。
到目前为止,我注意到的两个注册人是onlinenic.com和namesilo.com。如果你试着为这两个域名运行whois,你就会明白我的意思。
我正在检查符合ICANN标准的示例:
https://www.icann.org/resources/pages/approved-with-specs-2013-09-17-en#whois
对于onlinenic.com和namesilo.com,我看不出有什么实质性的区别(也许我遗漏了什么)。
你知道为什么它在解析这些问题上有困难吗,或者我可以检查什么来修正它呢?谢谢。
发布于 2016-01-25 15:04:22
当注册员没有关联的解析器,或者解析器没有解析联系人所需的定义时,就会发生这种情况。
换句话说,除非存在解析器,否则注册员的详细信息可能在响应中,但是库无法找到它们。
在这种情况下,解决方案是添加/更新对应于特定注册员/注册表的解析器。
由于对于不熟悉库内部的人来说,这种行为是令人困惑的,所以也要注意,在这种情况下,新的第4版将引发错误。 (而不是静默地返回零)。这样,当值为零时,就会清楚地看到值是未知的。
发布于 2016-01-25 08:19:53
r = Whois.whois(domain_name)这里的r是一个Whois::Record对象,您可以找到可用的方法这里。registrant_contact不是其中之一。你可能得自己解析出来。
https://stackoverflow.com/questions/34987406
复制相似问题