一般的なGNU/Linuxディストリビューション(Fedora/Debian/Ubuntu/etcなど)で利用可能なコマンドラインツールを使用して、理想的には必要なく、特定のWHOISフィールド(たとえば、登録者の組織名)の値を取得する一般的な方法があります。各レジストリの出力間の違いを処理するようにハードコードされたカスタムWHOISパーサーを構築しますか?
whois
コマンドからの出力は非常に一貫しているように見えないため、これは質問する価値があるようです。たとえば、次を比較します。
$ whois trigger.io
[...]
Owner OrgName : Amir Nathoo
[...]
と:
$ whois facebook.com
[...]
Registrant Organization: Facebook, Inc.
[...]
代わりに、いくつかのコマンドの引数として渡すことができるようにしたいと思います。
そして、出力が単に目的のフィールドの値になるようにします。たとえば、上記の例に基づいて、次のようになります。
$ some_whois_command -field organization_name trigger.io
Amir Nathoo
$ some_whois_command -field organization_name facebook.com
Facebook, Inc.
これは可能ですか?
理想的には、whois
コマンドを中心とした解決策を希望します。たとえば、-i
、-q
、-t
、および/または-v
、これらのオプションを効果的に使用する方法を学びたいので、必要に応じて別の解決策を正解として受け入れます。
問題は少なくとも2つあるようです。
申し訳ございません。
IETF's これおよび他のWHOISの問題に対する提案されたソリューションは Registration Data Access Protocol(RDAP) と呼ばれます。
引用 RFC 7485 、これはRDAPの根拠を説明しています:
ドメイン名前空間に200以上の国コードがありました
トップレベルドメイン(ccTLD)および400を超える一般的なトップレベルドメイン
(gTLDs)このドキュメントが公開されたとき。別のドメイン名
レジストリには、異なるWHOIS応答オブジェクトと形式がある場合があります。A
これらすべてのデータ形式の共通理解は、
オブジェクトごとに単一のデータモデルを構築します。
(エンファシス鉱山。)
残念ながら、ほとんど(すべて?)のTLDレジストリは、サブドメインにWHOISサーバーを提供しますが、 のみ 1 これまでのところ、2つのTLDレジストリは、サブドメイン用のRDAPサーバーを正式にフィールド化しています :.czドメイン用のCZNIC、およびNIC .arドメイン用のアルゼンチン)。したがって、これは(まだ)一般的ではありません。幅広いTLDに適用可能なソリューションです。他のすべてのレジストリが急いでRDAPサーバーをフィールドに配置することを期待できます。
ソフトウェアに関しては、これまでに見つけたPOSIXシステム用の唯一のRDAPコマンドラインクライアントは nicinfo
です。
あなたはpythonを使うかもしれません
pip install whois
例えば、
#!/bin/python
import whois
print whois.whois('www.facebook.com')['city']