書式
host [-adlrwv ] [-c class ] [-t querytype ] host [server ]解説
host はインターネットホストに関する情報の検索を行ないます。 情報は世界中に広がった相互に接続されたサーバ群から得ます。 デフォルトではホスト名とインターネットアドレス間の変換のみを行ないます。 ``-t '' や ``-a '' オプションとともに使うと、そのホストに関するドメインサーバによって保守 されている情報のすべてを得ることができます。引数にはホスト名かホスト番号のいずれかを指定できます。 本プログラムはまず引数をホスト番号として解釈を試みます。 それがうまくいかなければ、ホスト名として扱います。 ホスト番号は 128.6.4.194 のようにドットによって区切られた 4 つの 10 進数からなります。 ホスト名は topaz.rutgers.edu のようにドットで区切られた複数の名前からなります。 名前がドットで終っていなければ、ローカルドメインが自動的に末尾に 付け加えられます。たとえば Rutgers のユーザは
というように使うことができ、これは実際には "topaz.rutgers.edu" が検索されます。 これがうまくいかなければ、名前は変更されずに (この例では "topaz" として) 試みられます。このやりかたはメールやその他のネットワークユーティリティ でも使うことができます。 実際に末尾に付け加えられる接尾辞は、 hostname(1) を呼び出した結果の最初のドット以降となります。(下記の Sx ホスト名検索のカスタマイズ の節を参照してください。)
最初の引数は検索を行なうホスト名となります。これが数字の場合、 ``逆引き'' が実行されます。すなわちドメインシステムは数字を名前に変換するための別 のデータベース群を参照します。
2 番目の引数は省略可能です。ここでは問い合わせを行なうサーバを指定する ことができます。この引数が指定されなければ、デフォルトのサーバ (通常は ローカルマシン) が使われます。
名前が指定された場合、3 つの異なった種類の結果が出力されます。 以下はそれらの例です。
sun4.rutgers.edu is a nickname for ATHOS.RUTGERS.EDU
ATHOS.RUTGERS.EDU has address 128.6.5.46
ATHOS.RUTGERS.EDU has address 128.6.4.4
ATHOS.RUTGERS.EDU mail is handled by ARAMIS.RUTGERS.EDU
ここでユーザはコマンド ``host sun4 '' を入力しています。最初の行は名前 ``sun4.rutgers.edu '' は実際にはニックネームであることを示しています。 正式なホスト名は ``ATHOS.RUTGERS.EDU '' です。続く 2 行ではアドレスが表示 されています。もし複数のネットワークインタフェースをもつシステムであ れば、その各々は別のアドレスを持ちます。最後の行では ATHOS.RUTGERS.EDU は自分に対するメールは受け取らないことを示しています。このホスト宛ての メールは ARAMIS.RUTGERS.EDU によって取り込まれます。いくつかのシステム ではそのメールを扱うシステムが複数存在することがあり、その場合はこの行 のような情報がさらに出力されます。技術的にはメールを受け取ることのでき るすべてのシステムがこのようなエントリを持つと考えられます。もしシステム がそのメールを自分自身で受け取る場合、
のように、そのシステム自身について言及したエントリがあるはずです。しかし、 メールを自分で受け取る多くのシステムではわざわざその事実について言及し ていません。もしあるシステムに ``mail is handled by '' のエントリがあるのにアドレスがなければ、 それは本当はインターネットの構成員ではないが、 ネットワーク上のあるシステムがメールをそこに転送してくることを示しています。 Usenet や Bitnet やその他の多くのネットワーク上のシステムではこの種の エントリを持っています。
オプション
ホスト名の前に指定できるオプションは沢山あります。これらのオプションの ほとんどはドメインデータベースを保守しているスタッフにのみ意味のあるも のです。- -a
- ``all'' の意。 これは ``-v -t any '' と同じです。
- -c class
- 非インターネットデータを検索する class 。
- -d
- デバッグモードとなります。ネットワークトランザクションが詳細に表示されます。
- -l
-
完全なドメインのリストを表示します。例えば
を実行すると、rutgers.edu ドメインのすべてのホストのリストを表示します。 ``-t '' オプションを使うことによって表示する情報にフィルタをかけることがで きます。デフォルトでは PTR と NS レコードを含んだアドレス情報が表示さ れます。
このコマンドでは rutgers.edu の完全なゾーンデータを正式なマスタファイル の形式でダウンロードします。(しかし不思議な理由により SOA レコードは 2 回リストされます。)
注: ``-l '' フラグは完全なゾーン転送を行なった後、 要求した情報をフィルタリングするように実装されています。このコマンドは 絶対に必要な時に限って使うべきです。
- -r
- 再帰的な問い合わせを行ないません。これは ネームサーバがそのサーバ自身のデータベースに所持しているデータのみを返すこ とを意味します。サーバは他のサーバに情報の問い合わせを行ないません。
- -d
- デバッグを有効にします。 ネットワークトランザクションの詳細が表示されます。
- -s
- 署名から親の鍵を追跡します (DNSSEC)。
- -t querytype
- 特定の querytype の情報の検索を指定することができます。 引数は named(8) の man ページにおいて定義されています。現在サポートされ ているタイプには以下のものが含まれます: ``a '' ``ns '' ``md '' ``mf '' ``cname '' ``soa '' ``mb '' ``mg '' ``mr '' ``null '' ``wks '' ``ptr '' ``hinfo '' ``minfo '' ``mx '' ``uinfo '' ``uid '' ``gid '' ``unspec '' さらに、ワイルドカード (これは ``any '' か ``* '' として指定されます) があり、上記のすべてのタイプを指定するためにつかいます。 タイプは小文字で指定しなければなりません。 デフォルトでは最初に ``a '' が検索され、次に ``mx '' が検索されます。ただし、verbose オプションが指定されていると、デフォルトでは ``a '' のみの検索を行ないます。オプション ``-t '' は host が返す情報にフィルタをかけるのに特に有効です。 それ以上の情報は下記の ``-l '' オプションの説明を参照してください。
- -a
- ``すべて'' 。 ``-v -t any '' と同じです。
- -l
-
完全なドメインを列挙します。例えば
は、rutgers.edu domain 内のすべてのホストを列挙します。 ``-t '' オプションを使用して、どの情報を表示するかを、意図通りフィルタ可能です。 デフォルトは、アドレス情報と PTR と NS レコードです。 コマンド
は、rutgers.edu に対するゾーンデータの完全なダウンロードを、 公式なマスタファイル書式で与えます (しかしながら、不可解な理由で、SOA レコードは 2 度表示されます)。
注: ``-l '' の実装は、完全なゾーン転送を行い、 これに対して要求した情報をフィルタアウトすることで行われます。 このコマンドの使用は、本当に必要な場合に限るべきです。
ホスト名検索のカスタマイズ
一般にユーザによって指定された名前にドットが含まれていなければ、 デフォルトのドメインがその末尾に付け加えられます。このドメインは /etc/resolv.conf において定義することができますが、通常はローカルの ホスト名の最初のドット以降を取ることによって求められます。ユーザは環境変数 LOCALDOMAIN を使って異なるデフォルトドメインを指定することによって、これを オーバーライドすることができます。さらに、ユーザはホスト名の独自の略称を使うこ ともできます。略称は 1 つの略称につき 1 行からなるファイルにおいて指定 します。各行には略称、スペース、そして完全なホスト名が含まれます。この ファイルは環境変数 HOSTALIASES にてファイル名を指定します。環境変数
- HOSTALIASES
- (ホストの別名 , 完全なホスト名 ) のペアを含んでいるファイルのファイル名
バグ
ローカルドメインに含まれない名前を入力すると予期できない影響が起こり得 ます。名前がドットで終っていない限り、ローカルドメイン名がすべての名前の 末尾に付加されることをいつも心に留めておいてください。 ローカルドメインの補完に失敗した時のみ、名前は変更されずに使用されます。``-l '' オプションでは要求されたドメインにおいてリストされている最初の ネームサーバにのみ問い合わせを行ないます。もしこのサーバが死んでいれば、 サーバをマニュアルで指定しなければなりません。たとえば foo.edu のリストを 得るには、
と指定して foo.edu のすべてのネームサーバ のリストを得てから、動作するものが見つかるまでリストにあるすべての ネームサーバについて
(ここで ``xxx '' はネームサーバ) を試みれば良いでしょう。