所以我再次来到这里,是关于我一定要研究一段时间的 ruby whois gem。我一直在摆弄它,并注意到一些新闻 gTLD 没有实施或没有完全实施。因此,我想了解这个 Ruby whois 解析器的深度,以便添加一些缺失的属性。
现在,我正在研究.name TLD(解析器是 'whois.nic.name') ,其中缺少domain、registrar、registrant_contacts和tech_contacts。(以及其他不太有用的)
如果我错了,请纠正我,但据我了解,解析过程是从纯文本字符串中提取值得注意的关键字(例如“域名”或“赞助注册商 ID ”),以便创建一个属性或哈希,取决于输入。
注意 -> 解析器扩展了与通用或特定注册表相关的基础。我很确定它与适配器有关,除非是因为每个注册表都可能有自己的构建 whois 数据的方式。回到 .name,我查了一下,它似乎是由 Verisign 运营的。除其他外,.net TLD(解析器为“whois.verisign-grs.com”)也由上述注册表操作,因此我认为它们应该具有类似的行为。我犯了多么严重的错误……
domain.name whois 的纯文本
Domain Name ID: XXXXXXXXXXXX
Domain Name: XXXXXXXXXXX.NAME
Sponsoring Registrar: Network Solutions, LLC.
Sponsoring Registrar ID: 2_REGISTRAR_NAME-VRSN
Domain Status: clientTransferProhibited
Registrant ID: CONTACT_NAME-VRSN
Admin ID: CONTACT_NAME-VRSN
Tech ID: CONTACT_NAME-VRSN
Billing ID: CONTACT_NAME-VRSN
Name Server: NS1.WIX.COM
Name Server ID: 1739652_HOST_NAME-VRSN
Name Server: NS2.WIX.COM
Name Server ID: 1739653_HOST_NAME-VRSN
Created On: 2013-09-30T05:36:15Z
Expires On: 2015-09-30T05:36:15Z
Updated On: 2014-10-06T11:44:37Z
domain.net whois 的纯文本
Domain Name: XXXXXXX.NET
Registry Domain ID:
Registrar WHOIS Server: whois.publicdomainregistry.com
Registrar URL: www.publicdomainregistry.com
Updated Date: 23-Jul-2014
Creation Date: 24-Apr-2009
Registrar Registration Expiration Date: 24-Apr-2016
Registrar: PDR Ltd. d/b/a PublicDomainRegistry.com
Registrar IANA ID: 303
Registrar Abuse Contact Email: abuse-contact@publicdomainregistry.com
Registrar Abuse Contact Phone: +1-2013775952
Domain Status: clientTransferProhibited
Registry Registrant ID: XXXXXXXX
Registrant Name: Domain Admin
这是我为显示属性所做的输出
.NAME 解析了 whois
domain :
status : ["clientTransferProhibited"]
available? : false
registered? : true
created on : 2013-09-30 05:36:15 UTC
updated on : 2014-10-06 11:44:37 UTC
expires_on : 2015-09-30 05:36:15 UTC
registrar (hash) :
registrant contact (hash) :
admin contact (hash) :
technical contact (hash) :
.NET 解析了 whois
domain : XXXXXXX.net
status : registered
available? : false
registered? : true
created on : 2009-04-24 00:00:00 +0000
updated on : 2014-05-24 00:00:00 +0000
expires_on : 2016-04-24 00:00:00 +0000
registrar (hash) : #<struct Whois::Record::Registrar id=nil, name="PDR LTD. D/B/A PUBLICDOMAINREGISTRY.COM", organization=nil, url="http://www.PublicDomainRegistry.com">
registrant contact (hash) :
admin contact (hash) :
technical contact (hash) :
如您所见,有一些变化。我想指出的是纯文本响应中的Registrar属性。第一个是“REGISTRAR IANA ID”,后者是“SPONSORING REGISTRAR ID”。这必须解释为什么解析器不能在.name TLD 上工作,因为 Verisign 基本解析器(文件 base_verisign.rb)是这样配置的:
property_supported :registrar do
node("Sponsoring Registrar") do |value|
Whois::Record::Registrar.new(
id: last_useful_item(node("Sponsoring Registrar IANA ID")),
name: last_useful_item(value),
url: referral_url
)
end
end
并不是说我理解为什么它是“赞助注册商 IANA ID”而不是“注册商 IANA ID”......
无论如何,如果有人可以通过解释我的误解来帮助我,并为我提供一个示例,说明我如何为 .name TLD 添加 registrar 属性(这样我就可以为其余部分做),那就太棒了!
我想知道你的代码是什么“节点”,因为我不知道。我假设它是封装了 whois 响应属性的结构对象的表示,但我在任何地方都没有看到任何关于它的信息。
总之,加油!