2014-10-09 51 views
1

所以我再次谈到ruby whois的宝石,我一定会在其上工作一段时间。我一直在摆弄它,并注意到一些新闻gTLD没有实施或没有完全实施。 因此,我想了解这个Ruby whois解析器的深度,以便添加一些缺失的属性。如何添加属性到现有的解析器ruby whois

现在,我工作的。名称 TLD(解析器是 'whois.nic.name')至极具有注册商registrant_contactstech_contacts失踪。 (其他不太有用的)

请纠正我,如果我错了,但从我了解的过程解析是从纯文本字符串中提取值得关注的关键字(如“域名”或“赞助注册商ID”),以根据输入创建属性或散列。

N.B - >解析器扩展了与通用或特定注册表相关的基础。我很确定它与适配器有关,除非是因为每个注册表都有自己的结构化whois数据的方式。 回到.name我查看了它,它似乎由Verisign操作。除此之外,.net顶级域名(解析器是'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: [email protected] 
Registrar Abuse Contact Phone: +1-2013775952 
Domain Status: clientTransferProhibited 
Registry Registrant ID: XXXXXXXX 
Registrant Name: Domain Admin 

这里是我做显示输出性能

.NAME解析域名注册

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解析域名注册

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 IANA ID”,后者是“SPONSORING REGISTRAR ID”。这必须解释为什么解析器未在。名称 TLD工​​作以来,威瑞信基础解析器(文件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添加注册器属性顶级域名(所以我可以为其余的做),这将是太棒了!

我想知道你的代码是什么“节点”,因为我不知道。我假设它是封装了whois响应属性的struct对象的表示,但是我没有在任何地方看到它的任何信息。

无论如何,欢呼!

+0

请花时间学习如何更好地设置问题的格式,并使用正确的语法,包括正确的大写。这对您来说似乎并不重要,但它可以帮助我们阅读您的问题,从而更容易帮助您。如果你的问题很难阅读,一些潜在的回答者会走开。此外,减少绒毛和无意义的措辞,所以问题是清晰和简洁的。 – 2014-10-09 18:23:17

+0

简而言之,我正在研究whois-ruby宝石。解析时,会从纯文本响应中提取属性。但。并不是所有的属性都支持,我的问题在于了解它的工作原理。 – Exos 2014-10-10 07:28:05

回答

0

其实,我认为我的问题是在其他地方。

由于Ruby-Whois是一个gem,它的Load_Path将作为rmm目录中的gem加载(它应该这样做)。但是在我编辑源文件的开发环境中,Ruby只是忽略了我的更改并加载了gem,而不是我编辑的版本。谢谢Load_Path。

这就是为什么即使使用Byebug,我也无法获得任何断点的原因,因为它使用的是whois的gem版本,而不是我正在编辑的本地版本。 现在似乎很明显,但修改whois时,您不应该安装gem。

然后,用一些正则表达式添加属性并不是那么困难,只是很耗时。

相关问题