联系信息为空/未解析某些注册商的域名

时间:2016-01-25 07:42:59

标签: ruby whois-ruby

我开始使用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,我没有看到任何实质性的差异(可能我错过了一些东西)。

为什么它在解析这些问题时遇到任何问题,或指出我可以检查修复它的内容?感谢。

2 个答案:

答案 0 :(得分:2)

当注册商没有关联解析器,或者解析器没有解析联系人所需的定义时,就会发生这种情况。

换句话说,除非存在解析器,否则注册商详细信息可能在响应中,但库无法找到它们。

在这种情况下,解决方案是添加/更新对应于特定注册商/注册表的解析器。

由于这种行为让那些不熟悉库内部的人感到困惑,所以在这种情况下也注意到新的release 4 will raise an error(而不是默默地返回nil)。通过这种方式,当值为nil时,将清楚该值是未知的。

答案 1 :(得分:0)

r = Whois.whois(domain_name)

此处的r是Whois::Record对象,您可以找到可用的方法here。 registrant_contact不是其中之一。你可能需要自己解析它。