| 総合手引 | セクション 3 | English | オプション |
#include <netdb.h>extern int h_errno;
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() および gethostbyname2() は名前が付いたホストを、現在のドメインと親のドメインから検索します。 名前にドットが含まれてなく、且つ環境変数 " HOSTALIASES" にエイリアスファイルの名前が含まれている場合は、 入力名に適合するエイリアスが、まずエイリアスファイルから検索されます。 ドメイン検索の手続きとエイリアスファイルの書式については、 hostname(7) を参照してください。
gethostbyname2() 関数は gethostbyname() の発展型で、 AF_INET 以外のアドレスファミリ、たとえば AF_INET6 での検索を可能にするためのものです。ただし現在は、 af 引数に AF_INET を指定する必要があります。他の値を指定すると gethostbyname2() 関数は、 h_errno を NETDB_INTERNAL に設定した後で、 NULL を返します。
sethostent() 関数は、問い合わせの際に接続された TCP ソケットを使いたい場合に使用できます。 stayopen フラグが 0 でなければ、 TCP によってすべての問い合わせをネームサーバに送り、 gethostbyname(), gethostbyname2(), gethostbyaddr() のそれぞれ呼び出し後にも、接続を保持するようにオプションを設定します。 フラグが 0 の時、問い合わせは UDP データグラムを使用して 実行されます。
endhostent() 関数は TCP 接続をクローズします。
herror() 関数は診断出力にメッセージを書き出します。 診断出力は文字列パラメータ s と、定数文字列 ": " と、 h_errno の値に対応するメッセージで構成されます。
hstrerror() 関数は、 err パラメータの値に対応するメッセージテキストの 文字列を返します。
| /etc/hosts
/etc/host.conf /etc/resolv.conf | |
変数 h_errno は次の値を取り得ます。
| HOST_NOT_FOUND | |
| 指定した名前のホストが未知です。 | |
| TRY_AGAIN | これは通常は一時的なエラーで、ローカルサーバが公式サーバ から応答が得られなかったことを意味します。しばらくして再度試みると成功する 場合があります。 |
| NO_RECOVERY | なんらかの予期しないサーバエラーが発生しました。 これは回復不能なエラーです。 |
| NO_DATA | 要求された名前は有効ですが、IP アドレスがありません。 これは一時的なエラーではありません。 指定したホスト名がネームサーバには知られているにもかかわらず、 対応するアドレスがないという意味です。 このネームサーバに対して同じドメイン名で別なタイプの要求を行うと、 回答が得られるかもしれません。 たとえばメールフォワーダがそのドメインに登録されている場合があります。 |
gethostent() 関数は、 /etc/hosts ファイルの次の行を読み込みます。 この際、必要ならばファイルをオープンします。
sethostent() 関数はファイル /etc/hosts をオープンもしくはリワインドします。 stayopen 引数が 0 でなければ、 gethostbyname(), gethostbyname2(), gethostbyaddr() のそれぞれの呼び出しの後、ファイルはクローズされません。
endhostent() 関数はファイルをクローズします。
| GETHOSTBYNAME (3) | May 25, 1995 |
| 総合手引 | セクション 3 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
| “ | Ken Thompson has an automobile which he helped design. Unlike most automobiles, it has neither speedometer, nor gas gauge, nor any of the other numerous idiot lights which plague the modern driver. Rather, if the driver makes a mistake, a giant “?” lights up in the center of the dashboard. “The experienced driver,” says Thompson, “will usually know what's wrong.” | ” |