WHOIS

WHOIS（フーイズ）は、インターネット上でのドメイン名・IPアドレス・Autonomous System (AS) 番号の所有者を検索するためのプロトコル。データベース検索を用い、TCPベースでクエリ（質問）・レスポンス（応答）を行う。
概要.
WHOIS検索は、伝統的にはコマンドラインインタフェースで使用されてきた。現在では、異なるデータベースを同時に検索するなど、操作を簡略化したウェブベース (GUI) で利用できるようになっている。
ウェブベースのWHOISクライアントはWHOISサーバに接続して検索を実行するために、現在もWHOISプロトコルに頼っている。また、コマンドラインWHOISクライアントも、システム管理者によって今も幅広く使用されている。
WHOISシステムは、システム管理者が、自分の管理下にないIPアドレスやドメイン名の管理者と連絡をとるための、いわば電話帳のような役割を果たすことを目的として始まった。クエリに対して返ってきたレスポンスデータの使われ方は、利他的な用途（たとえば電子商取引用https認証局）や邪悪な用途（たとえば大量かつ勝手に送りつけられてくる電子メール広告）に対処するために進化してきた。
WHOISには、RWhois と呼ばれる姉妹プロトコル規格が存在する。 
ThinモデルとThickモデル.
WHOIS情報を格納する方法は二種類に分類できる。Thinレジストリ、Thickレジストリと呼ばれるが、ここではThinモデルとThickモデルとして解説する。Thickモデルでは、特定のレジストリ情報を1台のサーバに全て登録しておく（たとえば1台のサーバで、すべての.orgドメイン領域のクエリを実行することができる）。Thinモデルでは1台のWHOISサーバに、検索可能な全ての詳細データが登録してあるWHOISサーバ群の名前を登録しておく（たとえば、.comのドメイン情報が登録された WHOISサーバ群にWHOISのクエリを任せる）。（1台のWHOISサーバのみに接続する必要がある場合には）通常はThickモデルの方が一貫したデータとわずかながら速いクエリを確実にする。
もしWHOISクライアントがクエリに対してレスポンスを返せなかった場合、エンドユーザーに対する結果の表示はわずかなものとなる（WHOISサーバの情報と、おそらくは最低限の情報のみ）。WHOISクライアントがレスポンスできる場合、登録者についての詳細な情報が全て表示される。なお、WHOISプロトコルはThinモデルとThickモデルを区別する方法を規格に含んでいない。
登録情報を正確に格納するためには、ドメイン名を管理するレジストリ組織での変化を記録する必要がある。いくつかのトップレベルドメイン（.comや.netを含む）は、ThinモデルでWHOISを提供している。いくつかのレジストリ組織では、顧客に対してデータのメンテナンスを提供している。他のレジストラ（.orgを含む）はThickモデルでWHOISを提供している。
なお、日本においてはJPRSが主なドメイン名に関するレジストリ組織となり、WHOISも提供している。IPアドレスおよびAS番号に関するWHOISはJPNICが提供している。
クエリの例.
wikipedia.orgのWHOISクエリ結果を下記に示す。
歴史.
インターネットがARPANET本体から独立した時、全ての登録情報を取り扱った組織はアメリカ国防総省の下部組織、国防高等研究計画局（DARPA）だけであった。登録手続きはRFC 920で確立された。WHOISは1980年代前半、ドメイン検索用に標準化され、ドメイン名や番号とそれに関する人員の登録を始めた。登録組織は一つしかなかったので、WHOISクエリサーバも1台に集中した。このことは、情報の検索を非常に簡単にした。
初期のWHOISサーバは非常に甘い実装で、ワイルドカード検索が可能であった。人名でWHOIS検索ができ、登録されているすべてのドメイン管理者名を得ることができた。任意のキーワードで検索することもでき、そのキーワードを含むすべての情報を得ることもできた。個々の管理者の連絡先が分かるだけでなく、彼らが関係していた全ての領域を見ることができた。インターネットが商用利用されるようになってからは、複数のレジストラと非倫理的なスパム業者のために、このような甘すぎる検索は利用できなくなった。
1980年代、ARPANETがインターネットに移行しつつ消えゆく間、ドメイン登録についての責任はDARPAに残されていた。UUNetはドメイン登録サービスを提供し始めたが、それは単にDARPAのNICに対する登録の代行業務に過ぎなかった。米国科学財団 (NSF) がサードパーティーとして、ドメイン名の登録業務を商用向けに開始した。1993年にはNSFとNetwork Solutions、General Atomics、AT&Tの契約のもと、InterNICが作られた。General Atomicsの契約は、パフォーマンス問題のために数年後にキャンセルされた。
1999年12月1日、.com・.net・.org の管理はICANNに引き渡され、これらのポピュラーなトップレベルドメイン（以下、TLD）のWHOISサーバはThinモデルに切り替えられた。従来のWHOISクライアントはその時点で使用できなくなった。翌日にはbw-whois がコマンドライン・クライアントとして公開された。1ヶ月後には同じプログラムをもとに、ウェブベースによるWHOIS検索が可能となり、かつ拡張TLDテーブルを管理できるようにしたCGIとなった。これは結局、最新のWHOISクライアントのモデルになった。
現在は、1980年代初頭にあったよりも多くのTLDが生まれ、さらに多数の国名トップレベルドメイン (ccTLD) が存在する。これらはドメイン管理組織やレジストラの関係を複雑にし、特にインターネットの基盤整備については国際化の必要性が出てきた。こういった事情により、WHOISクエリで正しい結果を得るには、どのWHOISサーバがレジストリを管理しているのかを知っている必要がある。WHOIS検索を横断的に行うツールとして、コマンドラインWHOISクライアント jwhois はドメイン名／ネットワークブロックとレジストリ組織のひも付けを登録・編集できるコンフィギュレーション・ファイルを備えている。
2004年、IETF委員会は、ドメイン名とネットワーク番号に関する全く新しい検索情報の規格化策定に着手した。提案されたこの新規格の仮称はCRISP (Cross Registry Information Service Protocol) という。
WHOISサーバへのクエリ.
コマンドライン・クライアント.
初期のWHOISサーバへのアクセス方法は、コマンドラインのみであった。ほとんどの場合、UNIXまたはUNIX系のOS上で動作した。WHOISクライアント・ソフトは、開発当初から現在に至るまでオープンソースで供給されている。商業ベースのUNIXでは、独自のWHOISクライアントが実装されている（たとえば、SunのSolarisには、Sunが開発したWHOISクライアントが含まれている）。
一般的なWHOISコマンドライン・クライアントは、WHOISクエリのため、どのサーバに接続するかをオプションで選ぶことができ、デフォルトでどのサーバに接続するかを変更するには、再コンパイルで対処することになる。さらに別オプションとして、どのポートで接続するか、デバッグ用データを表示するかどうか、再帰的照会をするかしないかといったものがある。
大部分のTCP/IPクライアント・サーバアプリケーションと同様、WHOISクライアントはユーザーの入力を待ち、接続先サーバにIPソケットを開ける。WHOISプロトコルは適当なポートでクエリを送り、応答を待つ。そして、応答をユーザーに表示して終了するか、さらに入力を待つ。WHOISプロトコルに関する詳細な情報はRFCで見つけることができる。
GNUプロジェクトの jwhoisクライアントは、他の多くのWHOISクライアントとは違い、WHOISクエリの照会先を登録できるコンフィギュレーション・ファイルを持っている。この仕組みにより、参照／再帰的照会ロジックをソースコード外に出し、かつインターネット・インフラの変更にも素早く追従できるという特色を持った。
グラフィカル・クライアント.
WHOISサーバから来るデータのすべてがテキストである上に、プロトコルは静的なものであることから、「グラフィカル」という項目は誤解を招くかもしれない。WHOISサーバにはインタラクティブという言葉は当てはまらない。この節において「グラフィカル・クライアント」とは、グラフィカルユーザインタフェース (GUI) を備えたOS上で動作するWHOISクライアントを指す。
Windowsで動作するポピュラーかつフリーなWHOISクライアントは、Sam-Spade packageの一部であって、「ホットリンク」が作られるようになっている（たとえば、WHOISクエリの結果の一部をクリックすることで、新しいクエリを実行することができる）。
もう一つのポピュラーなWindows用WHOISクライアントは Active Whois である。このツールはWHOISクエリと、WHOISホスト検索のためのDNS検索ロジックを組み合わせたもので、ThickモデルとThinモデルの両方に対応している。Sam-Spade同様、クエリ結果をホットリンクとして出力する。
ウェブベース・クライアント.
World Wide Webの急速な発展による、ウェブ上での情報の一般化、特にネットワーク・ソリューション寡占の緩みに伴い、ウェブ経由でのWHOISクエリは一般的になりつつある。もっとも初期のウェブベースWHOISクライアントは、単にインタフェースをウェブとしただけの、コマンドラインWHOISクライアントに対するフロントエンドに過ぎず、必要に応じて出力結果を整形するか消去するのみであった。
現状では、直接WHOISクエリを入力し、表示のために整形された結果が得られるものが一般的である。多くはレジストラによって提供されている。しかし、オープンソース・クライアントも存在する。例えばGeekTools、Whois Proxyなど。
ウェブベース・クライアントの必要性は、コマンドラインWHOISクライアントが当初UNIX（系）と大型機にしかなく、WindowsやMacintoshはWHOISクライアントを備えていなかったため、レジストラは潜在的顧客のためにWHOISデータベースへのアクセス手段を見つけなければならなかった。専用アプリケーションとしてのWHOISクライアントツールが各OSに現存する今でも、多くのエンドユーザーはウェブベースのWHOISを利用している。
Perl モジュール.
WHOISサーバとともに、Perlで作られたWHOISクライアントが存在する。これらの多くは、現在のWHOISサーバに対する全機能を備えている訳ではない。または、あまり流通していない。しかし、AS番号や登録者情報の検索には大いに役に立つ。