ドメイン名からサーバーのIPアドレスを調べたり,サーバーのログに残されたIPアドレスからアクセス元のドメイン名を突き止めたり---。ドメイン名に関係する調べものをするとき,お世話になるのがnslookupコマンドである。今回は,このnslookupコマンドの基本的な使い方をマスターしよう。

ドメイン名やIPアドレスを指定する

 使い方はいたって簡単だ。コマンド・プロンプト*を開き,nslookupと打ち込んだ後ろに半角スペースを空け,ドメイン名かIPアドレスを打ち込むだけである。

 ドメイン名を入れれば,そのドメイン名が割り当てられている機器のIPアドレスが表示される。例えば,

nslookup www.example.com

図1 nslookupコマンドはドメインに関連する情報の検索要求をDNSサーバーへ送り,その結果を表示する
コマンド・プロンプトから「nslookup ドメイン名」または「nslookup IPアドレス」と実行すると,最寄りのDNSサーバーへ検索要求が送られ,検索結果が画面に表示される。

[画像のクリックで拡大表示]

と打ち込んで実行すると(図1[拡大表示](1)),合計5行のテキストが表示される。

 このうち,上の2行はnslookupコマンドを実行したパソコンが問い合わせパケットを送った先のDNS*サーバーの情報である。パソコンには,あらかじめデフォルトのDNSサーバーのIPアドレスが登録されている*。nslookupコマンドは,その指定されたDNSサーバーへ問い合わせパケットを送る。上2行は,このDNSサーバーの情報というわけだ。

 実際の検索結果は後半3行で,ドメイン名に対するIPアドレスは最終行に記述される。図1の例では「Address: 192.0.34.166」と表示されている部分だ。ここを見れば,www.example.comというドメイン名に対応するIPアドレスは192.0.34.166だとわかる。このようにドメイン名を指定して,対応するIPアドレスを調べる方法を正引きという。

 一方,IPアドレスを指定して,対応するドメイン名を調べることもできる。こちらは逆引きと呼ばれる。やり方は

nslookup 210.145.117.79

のように実行する(図1(2))。すると,結果の表示の中に「Name: www.nikkeibp.co.jp」と書かれた行が出るはずだ。これで,IPアドレスが210.145.117.79に対応するドメイン名は,www.nikkeibp.co.jpだとわかる。

結果の詳細な見方

 もう少し表示結果の詳細を確認しておこう。図1(1)のように正引き検索を実行したとき,3行目には「Non-authoritative…」と表示された。これは,検索キーワードとして指定したwww.example.comというドメイン名に対応するIPアドレスが途中のDNSサーバー(nslookupコマンドが問い合わせを送ったデフォルトのDNSサーバーなど)のキャッシュに残っていたので,そこの情報を使って結果を表示したという意味だ。


図2 nslookupコマンドのしくみ
DNSサーバーへ問い合わせパケットを送り,すべてを調べてもらった結果を受け取って画面に表示する。

[画像のクリックで拡大表示]

 DNSでは多数のDNSサーバーが自身の担当範囲を明確に分けて分散管理している(図2[拡大表示])。nslookupコマンドがデフォルトのDNSサーバーへ検索要求パケットを送ると,そのDNSサーバーは自分が管理していない情報の検索要求のとき,ほかのDNSサーバーへ問い合わせる。しかし,いったん問い合わせたものについては自身のハードディスクなどにキャッシュとして一定期間保存している。そして,同じ問い合わせを受けたときには,そのキャッシュの情報を返答する。このようなケースになったとき,nslookupコマンドの実行結果には,「Non-authoritative…」というメッセージが表示される。

 一方,図1(2)のように「Non-authoritative…」というメッセージが表示されないケースもある。こちらは,検索対象を直接管理しているDNSサーバーから回答を得て,デフォルトDNSサーバーがnslookupコマンドに返答したケースである。図1(2)のケースでは,日経BP社のDNSサーバーに対して検索要求を送り,日経BP社のDNSサーバーが直接管理しているIPアドレスに対応するドメイン名の回答を受け取ったため,「Non-authoritative…」というメッセージが表示されなかったわけだ。