2014-10-09 52 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。

然後,用一些正則表達式添加屬性並不是那麼困難,只是很耗時。

相關問題