【 dig 】コマンド――ドメイン名からIPアドレスを調べる:Linux基本コマンドTips(158)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回はドメイン名からIPアドレスを調べる「dig」コマンドです。
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、ドメイン名からIPアドレスを調べる「dig」コマンドです。
digコマンドとは?
「dig」コマンドはDNSサーバに問い合わせることで、ドメイン名からIPアドレスを調べるコマンドです(逆も可能)。nslookupコマンド(第156回)やhostsコマンド(第157回)とよく似た機能を備えています。
問い合わせ内容をファイルから読み込むバッチモードや、オプション指定によってhostコマンドよりも表示内容を細かく指定できることがdigコマンドの特徴です。なお、nslookupコマンドとは異なり、対話モードを備えていません。
digコマンドの書式
dig [@DNSサーバ] ドメイン名 [クエリタイプ] [クエリクラス] [クエリオプション]
※クエリオプションはドメイン名の前にも指定可能。ドメイン名の代わりに「-x IPアドレス」を指定可能。[ ]は省略可能な引数を示しています。
digで指定する主なクエリタイプ
タイプ | 意味 |
---|---|
a | ネットワークアドレス(T_A)、デフォルト |
any | 指定されたドメインの全て/任意の情報(T_ANY) |
hinfo | ホスト情報(T_HINFO) |
mx | メール交換情報(T_MX) |
ns | ネームサーバ(T_NS) |
soa | ゾーンの権威者を表すレコード(T_SOA) |
axfr | ゾーン転送情報(T_AXFR)※1 |
※1 AXFR(Authoritative Transfer)は名前解決の情報(ゾーン情報)を別のサーバから取得するゾーン転送プロトコル。DNSサーバ同士の同期などに使われる。
digで指定する主なクエリクラス
クラス | 意味 |
---|---|
in | インターネットクラスドメイン(C_IN)、デフォルト |
any | 全て/任意のクラスの情報(C_ANY)※2 |
※2 anyはクエリタイプとクエリクラスの両方で使われるが、anyのみ指定した場合は「クエリタイプ=any」として扱うので、クエリクラスをanyにするにはタイプも別途指定するか、「-c any」で指定する。なお、全てのクエリタイプとクエリクラスのリストは、RFC 1035を参照
digで指定する主なクエリオプション
オプション | 意味 |
---|---|
-4 | IPv4で問い合わせる |
-6 | IPv6で問い合わせる |
-x IPアドレス | 逆引きを行う |
-t クエリタイプ | クエリタイプ(-t aまたは -t T_Aのように使用) |
-c クエリクラス | クエリクラス(-c inまたは-c C_INのように使用) |
-p ポート番号 | 問い合わせに使用するポート番号(デフォルトは53) |
-f ファイル | ファイルを読み込んで問い合わせを実行する(バッチモード) |
-T 秒数 | バッチモードで実行した際、各問い合わせの間隔(デフォルトは0秒) |
+debug、+nodebug | デバッグモードの有効/無効(省略形:deb) |
+recurse、+norecurse | 再帰的な探索の有効/無効(省略形:rec) |
+retry=回数 | リトライの回数(省略形:ret)、デフォルトは4回 |
+time=秒数 | タイムアウトまでの秒数(省略形:ti)、デフォルトは4秒 |
+defname、+nodefname | デフォルトドメインを使用するかどうか(省略形:def) |
+search、+nosearch | ドメインサーチリストを使うかどうか(省略形:sea) |
+trace、+notrace | ルートDNSからの名前解決をトレースするかどうか(省略形:tra) |
+dnssec、+nodnssec | DNSSEC ※3を使用するかどうか(省略形:dn) |
※3 DNSSEC(DNS Security Extensions、DNSセキュリティ拡張)は、正しいサーバから応答されたものであることを、デジタル署名によって保証する仕組み。DNS応答が偽装あるいは改ざんされると、ドメイン名とは異なるサーバに接続し、セキュリティ上の問題が起きる可能性がある。
digで指定する主なクエリオプション(表示指定関係)
オプション | 意味 |
---|---|
+cmd、+nocmd | コマンドを表示するかどうか(省略形:cm) |
+stats、+nostats | 問い合わせの統計を表示するかどうか(省略形:st) |
+comment、+nocomments | コメントを表示するかどうか(省略形:co) |
+ques、+noques | 質問ブロックを表示するかどうか(省略形:qu) |
+answer、+noanswer | 回答ブロックを表示するかどうか(省略形:an) |
+all、+noall | 表示指定を全て有効/無効にする |
+multiline、+nomultiline | 拡張フォーマットで表示するかどうか(省略形:m) |
+short、+noshort | 短い表示を行うかどうか(省略形:shor) |
ドメイン名からIPアドレスを調べる
「dig ドメイン名」で対応するIPアドレスを調べます(画面1)。IPアドレスからドメインを調べたい場合は「dig -x IPアドレス」とします。これを「逆引き」と表現しますが、逆引きができるかどうかはサーバの設定によって異なります。
コマンド実行例
dig ドメイン名
(ドメイン名に対応するIPアドレスを調べる)
dig www.google.co.jp
(www.google.co.jpのIPアドレスを調べる)(画面1)
dig -x IPアドレス
(IPアドレスに対応するドメイン名を調べる、逆引き)
図1 www.google.co.jpというドメイン名からIPアドレスなどを調べたところ 「->>HEADER<<-」行に「NOERROR」とあり、正常な応答であると分かる(ドメイン名が見つからない場合は「NXDOMAIN」、応答が異常な場合は「SERVFAIL」)
使用するDNSサーバを変更する
「dig @DNSサーバ ドメイン」と入力することで、問い合わせるDNSサーバを指定します(画面2)※4。
※4 インターネット上では多数のDNSサーバがドメイン名とIPアドレスのひも付けを分散管理している。ネットワーク構成上最も近いDNSサーバに、digコマンドが最初の問い合わせを行い、そのDNSサーバ上に情報がなければ、他のDNSサーバの情報も参照する(+norecurseを指定しなかった場合)。コマンド実行例にある「8.8.8.8」はGoogle Public DNSが運営するDNSサーバのIPアドレス。
コマンド実行例
dig @DNSサーバ ドメイン
dig @8.8.8.8 www.google.co.jp
(8.8.8.8に問い合わせてwww.google.co.jpのIPアドレスを調べる)(画面2)
表示内容を調整する
「dig ドメイン名」は問い合わせのコマンドやそれに対する回答、コメントなどが表示されます。「dig ドメイン名 +noques +nocomments」のようにすることで不要な項目を非表示に、「+short」でIPアドレスのみにすることができます(画面3)。
コマンド実行例
dig ドメイン名 +noques +nocomments
(「QUESTION SECTION」とコメント行を表示しない)
dig ドメイン名 +noques +nocomments +nostats
(上記に加えて最後に表示される統計情報を表示しない)(画面3)
dig ドメイン名 +short
(IPアドレスだけを表示する)(画面3)
筆者紹介
西村 めぐみ(にしむら めぐみ)
PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.