UNIX/Linuxの部屋 whoisコマンドの使い方

TOP UNIX/Linuxの部屋 UNIX/Linuxコマンド一覧 用語集 新版 由来/読み方辞書 環境変数マニュアル Cシェル変数 システム設定ファイル システムコール・ライブラリ ネットワークプログラミングの基礎知識 クラウドサービス徹底比較・徹底解説




コマンド whois ドメインの所有者情報や IP アドレスを調べる このエントリーをはてなブックマークに追加

最終更新


whois とは、ドメインや IP アドレスの所有者情報を管理するデータベースである。whois コマンドはそのデータベースへ問い合わせを行うコマンドである。whois コマンドを使うことで、ドメインの所有者、ドメイン期限、DNS サーバ名、IPアドレス等を調査することができる。



whois コマンドの基本的な使い方
本サイトのドメインである q-e-d.net のドメイン情報を調べるには、下記のように whois コマンドの引数にドメイン名を渡せばよい。
% whois q-e-d.net
Domain Name: Q-E-D.NET
Registry Domain ID: 122410112_DOMAIN_NET-VRSN
Registrar WHOIS Server: whois.enom.com
Registrar URL: http://www.enom.com
Updated Date: 2017-08-06T07:48:16Z
Creation Date: 2004-06-13T10:49:12Z
Registry Expiry Date: 2018-06-13T10:49:12Z
Registrar: eNom, Inc.
Registrar IANA ID: 48
Registrar Abuse Contact Email:
Registrar Abuse Contact Phone:
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Name Server: DNS01.MUUMUU-DOMAIN.COM
Name Server: DNS02.MUUMUU-DOMAIN.COM
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
>>> Last update of whois database: 2017-11-09T05:58:00Z <<<
いろいろな情報があるが、下記より、2004年にドメインを取得し、ドメイン期限は 2018年6月13日であり、ムームードメインの DNS サーバを使っていることがわかる (タイムゾーンは UTC)。
Creation Date: 2004-06-13T10:49:12Z
Registry Expiry Date: 2018-06-13T10:49:12Z
Name Server: DNS01.MUUMUU-DOMAIN.COM
Name Server: DNS02.MUUMUU-DOMAIN.COM

上記は whois.verisign-grs.com から取得している情報のようだ (なぜそこを見にいく?)。Linux の whois (jwhois) ではこれだけしか表示されないが、FreeBSD の whois ではさらに whois.enom.com にも問い合わせを行い、下記のようなドメイン所有者の連絡先が表示できる。
Admin Name: WHOIS PRIVACY PROTECTION SERVICE BY MUUMUUDOMAIN
Admin Organization: PAPERBOY AND CO.
Admin Street: 2-7-21 TENJIN CHUO-KU
Admin Street: TENJIN PRIME 8F
Admin City: FUKUOKA-SHI
Admin State/Province: FUKUOKA-KEN
Admin Postal Code: 8100001
Admin Country: JP
Admin Phone: +81.927137999
Admin Phone Ext:
Admin Fax: +81.927137944
Admin Fax Ext:
Admin Email: PRIVACY@WHOISPRIVACYPROTECTION.INFO
(略)

上記は本来、当ページ管理人の名前や住所が表示されるものであるが、個人情報がうるさい昨今では、ほとんどのドメイン購入の際に「Whois 情報公開代行」を選択できる。このドメインはムームードメインから購入し、その際「Whois 情報公開代行」を申し込んだので、ムームードメインの住所等が表示されているわけである。

本サイトの FQDN は x68000.q-e-d.net であるが、FQDN をそのまま使っても、
% whois x68000.q-e-d.net
No match for domain "X68000.Q-E-D.NET".
となりうまくいかない。このようなときは先頭のサブドメイン部分をどんどん削っていって、マッチするまで繰り返すとよい。一方、トップレベルドメインの一つ上のドメインでよいかというとそういうわけでもなく、例えば www.city.tomakomai.hokkaido.jp のような都道府県型JPドメインでは
% whois city.tomakomai.hokkaido.jp
% whois tomakomai.hokkaido.jp
% whois hokkaido.jp
で、それぞれの情報を見ることができる。

whois基礎知識
.com や .net、.jp などのトップレベルドメインを管理する組織を「レジストリ」と呼ぶ。例えば .com や .net のレジストリは Verisign 社。.jp のレジストリは株式会社日本レジストリサービス (JPRS) と決まっている (たまにレジストリが変わることもある)。

一方で、ドメイン取得を受け付ける事業者を「レジストラ」と言う。例えば「お名前.com」や「ファーストサーバ」はレジストラであり、世界中の「レジストリ」と契約を締結している。これにより、「お名前.com」を使えば.com も .net も .jp も、ドメインを取得できるわけである。なお、レジストラになるには ICANN という組織から公認してもらう必要があり、日本では 10社程度しかない。レジストラ以外でドメインを購入できる会社は山ほどあるが、それは単なる代理店・リセラーという位置づけである (代理店から購入することがまずいわけではない)。

whois サーバ名を知るには
めんどくさいことに、whois データベースは各レジストリが提供するもので、各レジストリごとの whois サーバ名は、以下のように全く異なる。
  • .jp の場合: whois.jprs.jp
  • .net の場合: whois.enom.com

大昔の whois コマンドでは、-h オプションで指定しなければならなかった記憶があるが、2017年現在では whois コマンドはある程度自動で調べてくれるようだ。

やり方は 2つあるようで、FreeBSD 10-RELAEASE の whois の場合、
% whois hogehoge.TLD
とすると、TLD.whois-servers.net を名前解決し、そこに接続しにいく。トップレベルドメインが jp であれば whois-servers.net は
jp.whois-servers.net. 600 IN CNAME whois.jprs.jp.
という CNAME レコードを返してくれるので、whois コマンドは whois.jprs.jp に接続して、無事ドメイン情報を取得できる。

一方、Linux の場合、jwhois というパッケージで whois コマンドが提供されているが、こちらは/etc/jwhois.conf という設定ファイルがあって、
"\\.jp$" { whois-server = "whois.jprs.jp"; }
という whois サーバ名が直接書いてある。

当ページ管理人は whois-severs.net がいかなる団体が運営している DNS サーバなのか、更新頻度はどれくらいなのか調査したがわからなかった。一方、2011年頃 jwhois.conf に .tel ドメインが記載されておらず、手動で追加した記憶がある。どちらがよい方法なのかはわからない。

なお、whois サーバ一覧は https://www.iana.org/domains/root/db に記載されており、例えば .jp をクリックすると
Registry Information
URL for registration services: https://jprs.jp/
WHOIS Server: whois.jprs.jp
とあるので、jp ドメインの whois サーバは whois.jprs.jp であることがわかる。

なお、whois サーバを直接指定する場合、
% whois -h [whoisサーバ名] [ドメイン名]
とする。

次世代 whois - RDAP (Registration Data Access Protocol)
whois は、レジストリごとに whois サーバが別れており、フォーマットも定まっていない。日付の表記すら下記のようにレジストリごとにバラバラである。
2017/05/26
2017-05-26
2017. 05. 26
26 May 2017
May 26 23:59:59 GMT 2017
また、トンガドメイン (.to) のように、DNS 情報しかを返さない whois サーバもある。さらに TCP/43 ポートを使うため、環境によってはファイアウォール内から外部への接続性がないことも多いだろう。

このような状況を受け、 RDAP (Registration Data Access Protocol) というプロトコルが考案され実装が進められている。特徴は下記。
  • https + REST ベースなので、https クライアントなら何でもアクセス可能
  • レスポンスは JSON なので自動解析しやすい
  • どこに接続しても同じ結果が返ってくる

実例は下記。Google が提供するパブリック DNS サーバ 8.8.8.8 の情報を取得している。2017年11月現在では、ドメイン情報の取得はできない模様。
% fetch -o - https://rdap.apnic.net/registory/ip/8.8.8.8
% wget -O - https://rdap.apnic.net/registory/ip/8.8.8.8
% curl https://rdap.apnic.net/registory/ip/8.8.8.8

とはいえ、過去 Whois++ や RWhois などの代替プロトコルが提案されるも普及しなかった過去がある。さて RDAP はどうなるか。

注意点
本来はネットワーク管理者用のコマンドなので、一般ユーザの乱用は避けること。whois サーバによっては、連続してアクセスすると一定時間接続拒否されたりする。
>> Solaris10オンラインマニュアル(man) Solaris10 whois(1)
>> FreeBSDオンラインマニュアル(man) FreeBSD whois(1)