ということで、私がしばらくの間取り組もうとしている 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」です。これは、Verisign ベース パーサー (ファイル base_verisign.rb) が次のように構成されているため、パーサーが.name TLD で動作しない理由を説明する必要があります。
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 のレジストラ プロパティを追加する方法の例を提供してくれれば (残りのためにそれを行うことができます)、それは素晴らしいことです. !
そして、あなたのコードの「ノード」とは何かを知りたいのですが、私にはわからないからです。whois 応答のプロパティをカプセル化する構造体オブジェクトの表現だと思いますが、どこにも情報がありません。
とにかく乾杯!