WHOIS

WHOISは、インターネット上でのドメイン名・IPアドレス・Autonomous System  番号の所有者を検索するためのプロトコル。データベース検索を用い、TCPベースでクエリ・レスポンスを行う。

1. 概要
-----

WHOIS検索は、伝統的にはコマンドラインインタフェースで使用されてきた。現在では、異なるデータベースを同時に検索するなど、操作を簡略化したウェブベース  で利用できるようになっている。

ウェブベースのWHOISクライアントはWHOISサーバに接続して検索を実行するために、現在もWHOISプロトコルに頼っている。また、コマンドラインWHOISクライアントも、システム管理者によって今も幅広く使用されている。

WHOISシステムは、システム管理者が、自分の管理下にないIPアドレスやドメイン名の管理者と連絡をとるための、いわば電話帳のような役割を果たすことを目的として始まった。クエリに対して返ってきたレスポンスデータの使われ方は、利他的な用途や邪悪な用途に対処するために進化してきた。

WHOISには、RWhois と呼ばれる姉妹プロトコル規格が存在する。

2. ThinモデルとThickモデル
-------------------

WHOIS情報を格納する方法は二種類に分類できる。Thinレジストリ、Thickレジストリと呼ばれるが、ここではThinモデルとThickモデルとして解説する。Thickモデルでは、特定のレジストリ情報を1台のサーバに全て登録しておく。Thinモデルでは1台のWHOISサーバに、検索可能な全ての詳細データが登録してあるWHOISサーバ群の名前を登録しておく。通常はThickモデルの方が一貫したデータとわずかながら速いクエリを確実にする。

もしWHOISクライアントがクエリに対してレスポンスを返せなかった場合、エンドユーザーに対する結果の表示はわずかなものとなる。WHOISクライアントがレスポンスできる場合、登録者についての詳細な情報が全て表示される。なお、WHOISプロトコルはThinモデルとThickモデルを区別する方法を規格に含んでいない。

登録情報を正確に格納するためには、ドメイン名を管理するレジストリ組織での変化を記録する必要がある。いくつかのトップレベルドメインは、ThinモデルでWHOISを提供している。いくつかのレジストリ組織では、顧客に対してデータのメンテナンスを提供している。他のレジストラはThickモデルでWHOISを提供している。

なお、日本においてはJPRSが主なドメイン名に関するレジストリ組織となり、WHOISも提供している。IPアドレスおよびAS番号に関するWHOISはJPNICが提供している。

3. クエリの例
--------

wikipedia.orgのWHOISクエリ結果を下記に示す。

4. 歴史
-----

インターネットがARPANET本体から独立した時、全ての登録情報を取り扱った組織はアメリカ国防総省の下部組織、国防高等研究計画局だけであった。登録手続きはRFC 920で確立された。WHOISは1980年代前半、ドメイン検索用に標準化され、ドメイン名や番号とそれに関する人員の登録を始めた。登録組織は一つしかなかったので、WHOISクエリサーバも1台に集中した。このことは、情報の検索を非常に簡単にした。

初期のWHOISサーバは非常に甘い実装で、ワイルドカード検索が可能であった。人名でWHOIS検索ができ、登録されているすべてのドメイン管理者名を得ることができた。任意のキーワードで検索することもでき、そのキーワードを含むすべての情報を得ることもできた。個々の管理者の連絡先が分かるだけでなく、彼らが関係していた全ての領域を見ることができた。インターネットが商用利用されるようになってからは、複数のレジストラと非倫理的なスパム業者のために、このような甘すぎる検索は利用できなくなった。

1980年代、ARPANETがインターネットに移行しつつ消えゆく間、ドメイン登録についての責任はDARPAに残されていた。UUNetはドメイン登録サービスを提供し始めたが、それは単にDARPAのNICに対する登録の代行業務に過ぎなかった。米国科学財団  がサードパーティーとして、ドメイン名の登録業務を商用向けに開始した。1993年にはNSFとNetwork Solutions、General Atomics、AT&Tの契約のもと、InterNICが作られた。General Atomicsの契約は、パフォーマンス問題のために数年後にキャンセルされた。

1999年12月1日、.com・.net・.org の管理はICANNに引き渡され、これらのポピュラーなトップレベルドメインのWHOISサーバはThinモデルに切り替えられた。従来のWHOISクライアントはその時点で使用できなくなった。翌日には[1]がコマンドライン・クライアントとして公開された。1ヶ月後には同じプログラムをもとに、ウェブベースによるWHOIS検索が可能となり、かつ拡張TLDテーブルを管理できるようにしたCGIとなった。これは結局、最新のWHOISクライアントのモデルになった。

現在は、1980年代初頭にあったよりも多くのTLDが生まれ、さらに多数の国名トップレベルドメイン  が存在する。これらはドメイン管理組織やレジストラの関係を複雑にし、特にインターネットの基盤整備については国際化の必要性が出てきた。こういった事情により、WHOISクエリで正しい結果を得るには、どのWHOISサーバがレジストリを管理しているのかを知っている必要がある。WHOIS検索を横断的に行うツールとして、コマンドラインWHOISクライアント jwhois はドメイン名／ネットワークブロックとレジストリ組織のひも付けを登録・編集できるコンフィギュレーション・ファイルを備えている。

2004年、IETF委員会は、ドメイン名とネットワーク番号に関する全く新しい検索情報の規格化策定に着手した。提案されたこの新規格の仮称は[2]  という。

5. WHOISサーバへのクエリ
----------------

5.1. コマンドライン・クライアント
-------------------

初期のWHOISサーバへのアクセス方法は、コマンドラインのみであった。ほとんどの場合、UNIXまたはUNIX系のOS上で動作した。WHOISクライアント・ソフトは、開発当初から現在に至るまでオープンソースで供給されている。商業ベースのUNIXでは、独自のWHOISクライアントが実装されている。

一般的なWHOISコマンドライン・クライアントは、WHOISクエリのため、どのサーバに接続するかをオプションで選ぶことができ、デフォルトでどのサーバに接続するかを変更するには、再コンパイルで対処することになる。さらに別オプションとして、どのポートで接続するか、デバッグ用データを表示するかどうか、再帰的照会をするかしないかといったものがある。

大部分のTCP/IPクライアント・サーバアプリケーションと同様、WHOISクライアントはユーザーの入力を待ち、接続先サーバにIPソケットを開ける。WHOISプロトコルは適当なポートでクエリを送り、応答を待つ。そして、応答をユーザーに表示して終了するか、さらに入力を待つ。WHOISプロトコルに関する詳細な情報はRFCで見つけることができる。

GNUプロジェクトの jwhoisクライアントは、他の多くのWHOISクライアントとは違い、WHOISクエリの照会先を登録できるコンフィギュレーション・ファイルを持っている。この仕組みにより、参照／再帰的照会ロジックをソースコード外に出し、かつインターネット・インフラの変更にも素早く追従できるという特色を持った。

5.2. グラフィカル・クライアント
------------------

WHOISサーバから来るデータのすべてがテキストである上に、プロトコルは静的なものであることから、「グラフィカル」という項目は誤解を招くかもしれない。WHOISサーバにはインタラクティブという言葉は当てはまらない。この節において「グラフィカル・クライアント」とは、グラフィカルユーザインタフェース  を備えたOS上で動作するWHOISクライアントを指す。

Windowsで動作するポピュラーかつフリーなWHOISクライアントは、[3]の一部であって、「ホットリンク」が作られるようになっている。

もう一つのポピュラーなWindows用WHOISクライアントは Active Whois である。このツールはWHOISクエリと、WHOISホスト検索のためのDNS検索ロジックを組み合わせたもので、ThickモデルとThinモデルの両方に対応している。Sam-Spade同様、クエリ結果をホットリンクとして出力する。

5.3. ウェブベース・クライアント
------------------

World Wide Webの急速な発展による、ウェブ上での情報の一般化、特にネットワーク・ソリューション寡占の緩みに伴い、ウェブ経由でのWHOISクエリは一般的になりつつある。もっとも初期のウェブベースWHOISクライアントは、単にインタフェースをウェブとしただけの、コマンドラインWHOISクライアントに対するフロントエンドに過ぎず、必要に応じて出力結果を整形するか消去するのみであった。

現状では、直接WHOISクエリを入力し、表示のために整形された結果が得られるものが一般的である。多くはレジストラによって提供されている。しかし、オープンソース・クライアントも存在する。例えば[4]、[5]など。

ウェブベース・クライアントの必要性は、コマンドラインWHOISクライアントが当初UNIXと大型機にしかなく、WindowsやMacintoshはWHOISクライアントを備えていなかったため、レジストラは潜在的顧客のためにWHOISデータベースへのアクセス手段を見つけなければならなかった。専用アプリケーションとしてのWHOISクライアントツールが各OSに現存する今でも、多くのエンドユーザーはウェブベースのWHOISを利用している。

5.4. Perl モジュール
---------------

WHOISサーバとともに、Perlで作られた[6]が存在する。これらの多くは、現在のWHOISサーバに対する全機能を備えている訳ではない。または、あまり流通していない。しかし、AS番号や登録者情報の検索には大いに役に立つ。

6. 問題点
------

プライバシー 例示したように、登録者の個人情報が含まれており、大部分のTLDではインターネット上で誰でも簡単にその情報を入手することができる。 上記のクエリ結果の例でいえば、「Registant」の項目に登録者の住所・氏名・電話番号などの個人情報が含まれており、これが中小企業や大企業であれば問題にならないが、個人が運営するドメインで個人情報が知られるのは問題となる。しばしば、一部のレジストラが連絡のための個人情報を提供するが、これはレジストラがそのドメインの合法的な所有者であることを示すためだ。しかし、それらの情報も本来の特定のドメイン所有者が誰であるかの情報を提供するという目的を超えて、誰がどのドメインを持っているかを調べたり、ANSIのように氏名で検索した場合に検索エンジンにWHOISの結果が表示されるような仕様にして自社でWHOISサーバを提供しているレジストラまで出現している。プライバシーに敏感な利用者は偽の個人情報で登録したり、代理業者の名義で登録するなど本来のWHOISの役割を果たさなくなってきているケースも出てきた。
スパムメールしばしばスパム送信者がWHOISクエリからプレーンテキストで電子メール情報を収集する。WHOIS検索を提供しているレジストラの一部は、対策としてCAPTCHAを利用し、画像に描いてある文字列を入力しないとクエリができないようにしている。
国際化WHOISプロトコルは国際化の方針については規定していなかった。WHOISサーバは、受け入れたテキストの文字コードを判別することができない。そして、WHOISサーバのすべては単にASCII文字のみを使っている。しかし、これは国際的な運用には使うことができない。特に、多言語化されたドメイン名が広く使われ始めており、このことは明らかにWHOISプロトコルのアクセシビリティを英語圏内に限定してしまう。ユーザはPunycodeを使うことができるが、通常のユーザがこれを使いこなすことは簡単ではない。
WHOISサーバリストの不足WHOISには中央サーバがない。このため、WHOISツールの作成者は、自分自身でWHOISサーバのリストを作らなければならない。そして、異なるサーバリストを書いている他のユーザを見つける可能性がある。数少ないWHOISサーバリストのソースは、[7]で見つけることができる。
フォーマットの不徹底レジストラやサーバによって、WHOISクエリに対する応答のフォーマットが異なることがある。このことは、WHOISデータの解析を難しくする。しかし、このことへの対処の自動化は、合法的な用途もあるが、スパマーへの手助けとなるかもしれない。

7. 関連項目
-------

トップレベルドメイン
:en:Domain name registry
:en:RPSL
Asia-Pacific Network Information Centre

8. 外部リンク
--------

[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]

8.1. RFC
--------

812}} - NICNAME/WHOIS
954}} - NICNAME/WHOIS
3912}} - WHOIS protocol specification