GETIPNODEBYNAME(3) | Linux Programmer's Manual | GETIPNODEBYNAME(3) |
getipnodebyname, getipnodebyaddr, freehostent - ネットワークホストの名前とアドレスの取得
#include <sys/types.h> #include <sys/socket.h> #include <netdb.h> 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 では利用できない)。 代わりに getaddrinfo(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() 関数は name 引き数で指定されたホストのネットワークアドレスを引く。 af 引き数には以下の値のいずれかを指定する。
flags パラメーターには追加のオプションを指定する。 複数のフラグを指定するには、それらのビット単位の OR をとって指定すればよい。 オプションをひとつも指定したくないときには、 flags に 0 を設定する必要がある。
getipnodebyaddr() 関数は、ネットワークアドレスが addr 引き数で指定されたホストの名前を引く。 af 引き数には以下の値のいずれかを指定する。
エラーが起こると NULL が返され、 error_num に以下にリストされたエラーコードのいずれかが設定される。
問い合わせに成功すると、 hostent 構造体へのポインターが返される。 この構造体は以下のフィールドからなる。
RFC 2553.
これらの関数は glibc 2.1.91-95 に存在したが、再び削除された。 いくつかの UNIX 風システムはこれらの関数に対応しているが、 これらの関数は全て推奨されない。
この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。
2010-09-04 | Linux |