getipnodebynameのヘルプ・マニュアル
日本語 英語
getipnodebyname --help
man getipnodebyname
GETIPNODEBYNAME(3) Linux Programmer’s Manual GETIPNODEBYNAME(3)
名前
getipnodebyname, getipnodebyaddr, freehostent - ネットワークホストの名
前とアドレスの取得
書式
#include
#include
#include
struct hostent *getipnodebyname(const char *name, int af,
int flags, int *error_num);
struct hostent *getipnodebyaddr(const void *addr, size_t len,
int af, int *error_num);
void freehostent(struct hostent *ip);
説明
これらの関数は非推奨である (glibc では利用できない)。代わ り に getad-
drinfo(3) と getnameinfo(3) を使うこと。
getipnodebyname() と getipnodebyaddr() は、ネットワークホストの名前とア
ドレスを返す。これらの関数は、以下の構造体へのポインタを返す。
struct hostent {
char *h_name;
char **h_aliases;
int h_addrtype;
int h_length;
char **h_addr_list;
};
これらの関数は、 IPv4 ネットワークアドレスファミリにしかアクセスでき な
い gethostbyname(3) や gethostbyaddr(3) を 置き換えるものである。
getipnodebyname() 関数と getipnodebyaddr() 関数は複数のネットワークアド
レスファミリーにアクセス可能になっている。
これらの関数は、 gethostby の関数群と異なり、動的に割り当てられたメモリ
へのポインタを返す。呼び出し元がこれらの hostent 構造体を必要としなくな
った後は、 freehostent() 関数を用いれば動的な割り当てメモリを解放できる
。
getipnodebyname() の引き数
getipnodebyname() 関数は name 引き数で指定されたホストのネットワーク ア
ドレスを引く。 af 引き数には以下の値のいずれかを指定する。
AF_INET
name 引き数は、ドットで 4 つに区切られた IPv4 アドレスか、 IPv4
ネットワークホストの名前へのポインタである。
AF_INET6
name 引き数は、16 進の IPv6 アドレスか、 IPv6 ネットワークホスト
の名前へのポインタである。
flags パラメータには追加のオプションを指定する。複数のフラグを指定する
には、それらの論理 OR をとって指定すればよい。オプションをひとつも指 定
したくないときには、 flags に 0 を設定する必要がある。
AI_V4MAPPED
こ の フ ラグは AF_INET6 と共に用いられ、IPv6 アドレスの代わりに
IPv4 アドレスを問い合わせる。問い合わせる IPv4 アドレス は IPv6
アドレスにマップされる。
AI_ALL このフラグは AI_V4MAPPED と共に用いられ、IPv4 アドレスと IPv6 ア
ドレスの両方を問い合わせる。見つかった IPv4 アドレスは、す べ て
IPv6 アドレスにマップされる。
AI_ADDRCONFIG
このフラグは AF_INET6 と共に用いられ、 IPv6 が割り当てられたネッ
トワークインターフェースがシステムにひとつもなければ IPv6 アドレ
スの問い合わせを行わず、 IPv4 が割り当てられたネットワークインタ
ーフェースがシステムにひとつもなければ IPv4 アドレスの問い合わせ
を 行 わ な い よ う に 要求する。このフラグは単独でも、あるいは
AI_V4MAPPED フラグと共にでも用いることができる。
AI_DEFAULT
このフラグは (AI_ADDRCONFIG|AI_V4MAPPED) と等価である。
getipnodebyaddr() の引き数
getipnodebyaddr() 関数は、ネットワークアドレスが addr 引き数で指定さ れ
たホストの名前を引く。 af 引き数には以下の値のいずれかを指定する。
AF_INET
addr 引き数は struct in_addr へのポインターであり、 len 引き数は
sizeof(struct in_addr) に設定しなければならない。
AF_INET6
addr 引き数は struct in6_addr へのポインターであり、 len 引き 数
は sizeof(struct in6_addr) に設定しなければならない。
返り値
エラーが起こるとヌル・ポインターが返され、 error_num に以下にリストされ
たエラーコードのいずれかが設定される。
HOST_NOT_FOUND
ホスト名またはネットワークアドレスが見つからなかった。
NO_ADDRESS
ドメインネームサーバーはそのネットワークアドレスまたはネットワー
ク 名 を認識したが、返事が返ってこなかった。原因としては、例えば
IPv4 アドレスしか持たないネットワークホストに対して IPv6 の情 報
の問い合わせが行われた (およびその逆) などが考えられる。
NO_RECOVERY
ド メインネームサーバーから恒久的な失敗 (permanent failure) を意
味する返事が返された。
TRY_AGAIN
ネームサーバーから一時的な失敗 (temporary failure) を意味する 返
事が返された。次にはもうちょっと運が必要かも。
問い合わせに成功すると、 hostent 構造体へのポインタが返される。この構造
体は以下のフィールドからなる。
h_name これはこのネットワークホストのオフィシャルな名前である。
h_aliases
これは、そのホストのオフィシャルでない別名へのポインターの配列で
ある。配列はヌル・ポインターで終端する。
h_addrtype
こ れ は getipnodebyname() または getipnodebyaddr() に与えられた
af 引き数のコピーである。 af 引き数が AF_INET なら h_addrtype は
常 に AF_INET になり、 af 引き数が AF_INET6 なら h_addrtype も常
に AF_INET6 になる。
h_length
このフィールドは、 h_addrtype が AF_INET な ら sizeof(struct
in_addr) に 、 h_addrtype が AF_INET6 なら sizeof(struct
in6_addr) に設定される。
h_addr_list
これはひとつ以上のポインターの配列で、それぞれのポインターは、そ
のネットワークホストに対応するネットワークアドレス構造体を指す。
この配列はヌル・ポインターで終端する。
準拠
RFC 2553.
注意
これらの関数は glibc 2.1.91-95 に存在したが、再び削除された。いくつかの
Unix 風システムはこれらの関数に対応しているが、これらの関数は全て推奨さ
れない。
関連項目
getaddrinfo(3), getnameinfo(3), inet_ntop(3), inet_pton(3)
Linux 2007-11-15 GETIPNODEBYNAME(3)