名称
dnsquery - リゾルバを用いて DNS に問い合わせる
書式
dnsquery [-n nameserver] [-t type] [-c class] [-r retry] [-p period] [-d] [-s] [-v] host
解説
dnsquery プログラムは、BIND リゾルバのライブラリ呼び出しによって ネームサーバとやりとりする一般的なインタフェースです。 本プログラムはオペコード QUERY によるネームサーバ問い合わせを サポートしています。 本プログラムは、nstest, nsquery, nslookup のようなプログラムを 置き換えるあるいは補うものとして作成されました。 host と nameserver 以外の引数は大文字小文字を区別しません。
オプション
-n nameserver | |
問い合わせに用いるネームサーバ。
ネームサーバ指定は、w.x.y.z 形式のインターネットアドレス表記でも、
ドメインネーム表記でも構いません。
(デフォルト:
/etc/resolv.confの指定。) | |
-t type | |
関心あるリソースレコード型。型には以下のものがあります: | |
A | アドレス |
NS | ネームサーバ |
CNAME | 正式名 |
PTR | ドメインネームへのポインタ |
SOA | 権威の開始 (Start of Authority) |
WKS | よく知られたサービス (well-known service) |
HINFO | ホスト情報 |
MINFO | メールボックス情報 |
MX | メールエクスチェンジ (mail exchange) |
RP | 責任者 (responsible person) |
MG | メールグループメンバ |
AFSDB | DCE または AFS サーバ |
ANY | ワイルドカード |
大文字小文字どちらでも使用できます。(デフォルト: ANY )。
-c class | |
関心あるリソースレコードのクラス。クラスには以下のものがあります: | |
IN | インターネット |
HS | Hesiod |
CHAOS | Chaos |
ANY | ワイルドカード |
大文字小文字どちらでも使用できます。(デフォルト: IN )。
-r retry | |
ネームサーバが応答しない場合のリトライ回数。(デフォルト: 4) | |
-p period | |
-p タイムアウト時間(秒)。(デフォルト:
RES_TIMEOUT)。 | |
-d | デバッグ機能を有効にする。リゾルバの
options
フィールドの
RES_DEBUGビットをセットします。(デフォルト: デバッグ機能オフ) |
-s | パケットではなく
ストリーム
を用います。つまり、ネームサーバとの接続に UDP データグラムではなく、
TCP ストリームを用います。リゾルバの
options
フィールドの
RES_USEVCビットをセットします。(デフォルト: UDP データグラム) |
-v | オプション "-s" と同じ意味です。 |
host | 関心あるホスト名(あるいはドメイン名)。 |
関連ファイル
/etc/resolv.conf | デフォルトのネームサーバと検索リスト |
<arpa/nameser.h> | 利用できる RR タイプとクラスの一覧 |
<resolv.h> | リゾルバのフラグ一覧 |
診断
リゾルバが問い合わせの回答に失敗し、デバッグ機能が有効になっていない場合、 dnsquery は単に以下のようなメッセージを表示します:
Query failed (rc = 1): Unknown host
リターンコードの値は h_errno から得ます。
関連項目
nslookup(8), nstest(1), nsquery(1), named(8), resolver(5)
作者
Bryan Beecher
バグ
IN 以外のクラスを問い合わせると面白い結果が得られることがあります。 というのは、ネームサーバは普通、クラス IN のリソースレコードとして ルートネームサーバのリストだけしか持っていないからです。
本コマンドは、
inet_addrを呼び出して "-n" オプションが 正しいインターネットアドレスかどうかを判断します。 残念ながら、
inet_addrは一部の(正しくない)アドレス(例えば 1.2.3.4.5)に 対してセグメンテーションフォールトを起こすことがあるようです。