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
- 関心あるリソースレコード型。型には以下のものがあります:
大文字小文字どちらでも使用できます。(デフォルト:
ANY )。
-
-c
class
- 関心あるリソースレコードのクラス。クラスには以下のものがあります:
大文字小文字どちらでも使用できます。(デフォルト:
IN )。
-
-r
retry
- ネームサーバが応答しない場合のリトライ回数。(デフォルト:
4)
-
-p
period
- タイムアウト時間(秒)。(デフォルト:
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)に
対してセグメンテーションフォールトを起こすことがあるようです。