日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.2-RELEASE-K, 8.0-RELEASE-K は、プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.2-RELEASE-K, 8.0-RELEASE-K は、全翻訳済み)
6.4-STABLE-K, 7.2-STABLE-K, 8.0-STABLE-K は現在、 作成中で日々更新されています。 最新の snapshots を元に作成しています。
GETHOSTBYNAME(3) FreeBSD Library Functions Manual GETHOSTBYNAME(3)
名称
gethostbyname, gethostbyname2, gethostbyaddr, gethostent, sethostent,
endhostent, herror, hstrerror - ネットワークホストのエントリの取得
書式
#include <netdb.h>
extern int h_errno;
struct hostent *
gethostbyname(const char *name)
struct hostent *
gethostbyname2(const char *name, int af)
struct hostent *
gethostbyaddr(const char *addr, int len, int type)
struct hostent *
gethostent(void)
void
sethostent(int stayopen)
void
endhostent(void)
void
herror(const char *string)
const char *
hstrerror(int err)
解説
gethostbyname(), gethostbyname2(), gethostbyaddr() 関数はそれぞれ、次に示
す構造体を持つオブジェクトのポインタを返します。構造体には、名前またはア
ドレスによって参照されるインターネットホストが記述されていて、ネームサー
バ named(8) から、または /etc/hosts にある行の内訳フィールドから得られた
情報を含んでいます。ローカルのネームサーバが実行されていない場合、これら
のルーチンは /etc/hosts を検索します。
struct hostent {
char *h_name; /* ホストの正式名*/
char **h_aliases; /* 別名リスト*/
int h_addrtype; /* ホストアドレスタイプ*/
int h_length; /* アドレスの長さ*/
char **h_addr_list; /* ネームサーバからのアドレスリスト*/
};
#define h_addr h_addr_list[0] /* アドレス、下位互換用*/
この構造体のメンバは次のとおりです。
h_name ホストの正式名。
h_aliases ホストの別名 (エイリアス) のヌルで終わる配列。
h_addrtype 返されるアドレスのタイプであり、通常は AF_INET。
h_length アドレスのバイト数による長さ。
h_addr_list ホストのネットワークアドレスのヌルで終わる配列。ホストアドレ
スはネットワークバイト順で返されます。
h_addr h_addr_list にある最初のアドレスであり、下位互換用。
ネームサーバを使用する場合、 gethostbyname() および gethostbyname() は、
目的の名前が付いたホストを、現在のドメインと親のドメインから検索します。
ただしこれは、名前がドットで終わっていない場合です。名前にドットが含まれ
ないか、または環境変数 ``HOSTALIASES'' にエイリアスファイルの名前が含まれ
ている場合は、入力名に適合するエイリアスが最初にエイリアスファイルで検索
されます。ドメイン検索手続きとエイリアスファイル書式については、 host-
name(7) を参照してください。
gethostbyname2() 関数は gethostbyname() の発展型で、 AF_INET 以外のアドレ
スファミリ、たとえば AF_INET6 での検索を可能にするためのものです。ただし
現在は、 af 引数に AF_INET を指定する必要があります。他の値を指定すると
gethostbyname2() 関数は、 h_errno を NETDB_INTERNAL に設定した後で、 NULL
を返します。
sethostent() 関数は、問い合わせ用に、接続した TCP ソケットの使用を要求す
る場合に使用できます。 stayopen フラグが 0 でなければ、 TCP によってすべ
ての問い合わせをネームサーバに送り、 gethostbyname(), gethostbyname2(),
gethostbyaddr() のそれぞれ呼び出し後にも、接続を保持するようにオプション
が設定できます。その他の場合、問い合わせは UDP データグラムを使用して実行
されます。
endhostent() 関数は TCP 接続をクローズします。
herror() 関数は診断出力にメッセージを書き出します。診断出力は文字列パラメ
ータ s と、定数文字列": " と、 h_errno の値に対応するメッセージで構成され
ます。
hstrerror() 関数は、 err パラメータの値に対応するメッセージテキストの文字
列を返します。
関連ファイル
/etc/hosts
/etc/host.conf
/etc/resolv.conf
診断
gethostbyname(), gethostbyname2(), gethostbyaddr() のエラー状態は、ヌルポ
インタが返ることで示されます。その場合は外部整数 h_errno をチェックするこ
とにより、一時的なエラーであるのか、無効または未知のホスト名を指定したた
めかを判断できます。 herror() ルーチンによって、エラーを記述するエラー
メッセージを表示できます。引数 string は、 NULL でなければ表示され、後に
コロンとスペースが続きます。エラーメッセージが終端の改行とともに印刷され
ます。
変数 h_errno は次の値を取り得ます。
HOST_NOT_FOUND 指定した名前のホストが未知です。
TRY_AGAIN これは通常は一時的なエラーで、ローカルサーバが公式サーバ
から応答が得られなかったことを意味します。しばらくして再
度試みると成功する場合があります。
NO_RECOVERY なんらかの予期しないサーバエラーが発生しました。これは回
復不能なエラーです。
NO_DATA 要求された名前は有効ですが、IP アドレスがありません。これ
は一時的なエラーではありません。指定したホスト名がネーム
サーバには知られているにもかかわらず、対応するアドレスが
ないという意味です。このネームサーバに対して同じドメイン
名で別なタイプの要求を行うと、回答が得られるかもしれませ
ん。たとえばメールフォワーダがそのドメインに登録されてい
る場合があります。
関連項目
resolver(3), hosts(5), hostname(7), named(8)
警告
ネームサーバは検索せずに /etc/hosts だけを検索するルーチンを使用するよう
に libc(3) が構築された場合、 gethostent() 関数が定義され、 sethostent()
および endhostent() が再定義されます。
gethostent() 関数は、 /etc/hosts ファイルの次の行を読み込みます。この際、
必要ならばファイルをオープンします。
sethostent() 関数はファイル etc/hosts をオープンおよび / またはリワインド
します。 stayopen 引数が 0 でなければ、 gethostbyname(),
gethostbyname2(), gethostbyaddr() のそれぞれの呼び出しの後、ファイルはク
ローズされません。
endhostent() 関数はファイルをクローズします。
歴史
herror() 関数は 4.3BSD で最初に取り入れられました。 endhostent(),
gethostbyaddr(), gethostbyname(), gethostent(), sethostent() 関数は
4.2BSD で最初に取り入れられました。 gethostbyname2() 関数は bind-4.9.4 で
最初に取り入れられました。
バグ
これらの関数は静的データ記憶域を使用します。後でデータが必要な場合は、以
後の呼び出しで上書きする前にコピーして保存する必要があります。なお、アド
レスデータとして受け入れるのは現在、インターネットアドレスフォーマットだ
けです。
4.2 Berkeley Distribution May 25, 1995 3