Linuxコマンド辞典 digコマンド(ネットワーク)

DNSサーバーに問い合わせて名前解決を行う「dig」コマンドの概要と使い方を記載しています。

RHEL Fedora CentOS Vine Deblan Ubuntu Plamo

参考サイト:Man page of INSTALL

概要・使用方法

書式

$ dig [オプション] [@DNSサーバ] ホスト名/IPアドレス/ドメイン [検索タイプ][検索クラス][検索オプション・・・]

DNSサーバーに問い合わせて名前解決を行います。名前解決とはホスト名からIPアドレスに変換したり(正引き)、IPアドレスからホスト名に変換したり(逆引き)することです。digコマンドの出力は4つのセクションに分かれます。回答はANSWERセクションに表示されます。

オプション

DNSサーバ問い合わせするDNSサーバをIPアドレスかホスト名で指定する。指定しない場合は、/etc/resolv.confに記述されたDNSサーバを利用する
ホスト名/ドメイン名問い合わせたいホスト名やドメイン名を指定する
IPアドレス問い合わせたいIPアドレスを指定する(-xオプションが必要)
-x逆引きで問い合わせる
-p ポートポート番号を指定する
-f ファイル指定したファイルに記述された問い合わせを処理する
+short簡潔に表示する
検索タイプ

問い合わせタイプを指定する(デフォルトはA)
指定可能な検索タイプを参照

検索タイプ説明
aネットワークアドレス
aaaaAAAAレコード(IPv6アドレス)
any指定されたドメインのすべての情報
mxメール交換レコード
nsNSレコード(ネームサーバレコード)
soaSOAレコード(ゾーン権限者レコード)
hinfoホスト情報
axfrゾーン転送情報
txtTXTレコード(任意の文字列)
検索クラス

ネットワーククラスを指定する。インターネットクラスドメインのinか、任意のクラス情報を示すanyのどちらかを指定する(デフォルトはin)

指定可能な検索クラス

検索クラス説明
inインターネットクラスドメイン
any任意のクラス情報
検索オプション

問い合わせオプションや出力形式を変えるために利用する

検索オプション

-f ファイル名問い合わせ内容を記述したファイルを指定してバッチモードで動作させる。「:」「#」「\n」で始まる行はコメントとして扱われる
-x AAA.BBB.CCC.DDD逆引きアドレス問い合わせでDDD.CCC.BBB.AAA. in-addr.arpaで問い合わせする代わりにAAA.BBB.CCC.DDDで問い合わせできる
-p ポート番号DNSサーバの問い合わせポート番号を指定する(デフォルトは53)
-t タイプ問い合わせタイプを指定する

DNSサーバにIPアドレスを問い合わせる

$ digドメイン名 or ホスト

実行結果

[rin@centos ~]$ dig www.google.com

; <<>> DiG 9.11.36-RedHat-9.11.36-3.el8_6.1 <<>> www.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27707
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION: #<問い合わせ内容が表示
;www.google.com.                        IN      A

;; ANSWER SECTION:   #<回答が表示
www.google.com.         150     IN      A       142.250.196.132

;; Query time: 9 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: 水 12月 21 11:18:05 JST 2022
;; MSG SIZE  rcvd: 59

DNSサーバに問い合わせる

検索オプションに「+short」を指定して目的の情報だけ表示する

$ dig +short @IPアドレス ドメイン名 or ホスト

実行結果

# dig +short @192.168.1.1 www.yahoo.co.jp DNSサーバー192.168.1.1に問い合わせ、www.yahoo.co.jpのAレコードを問い合わせる
# dig +short @192.168.1.1 www.yahoo.co.jp DNSサーバー192.168.1.1に問い合わせ、yahoo.co.jpのNSレコードを問い合わせる
# dig +short @192.168.1.1 www.yahoo.co.jp DNSサーバー192.168.1.1に問い合わせ、yahoo.co.jpのMXレコードを問い合わせる

逆引きを調べる(IPアドレスからホスト名を調べる)

$ dig +short @IPアドレス -x IPアドレス

実行結果

# dig +short @192.168.1.1 -x 49.222.33.44

メールサーバーを調べる

$ dig +short @IPアドレス -x IPアドレス

実行結果

# dig +short @192.168.1.1 -x 49.222.33.44

問い合わせ内容をまとめてバッチ処理する

実行結果

# cat /tmp/dig.txt                         #<問い合わせ内容を列挙
deer-n-horse.jp mx
gihyo.jp soa
netlab.jp ns
# dig +short @192.168.0.1 -f /tmp/dig.txt  #-fオプションでテキストファイルを指定する