総合手引 | セクション 3 | English | Deutsch | オプション |
#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 | Deutsch | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | An ASCII character walks into a bar and orders a double. "Having a bad day?" asks the barman. "Yeah, I have a parity error," replies the ASCII character. The barman says, "Yeah, I thought you looked a bit off." | ” |