Provided by: manpages-ja-dev_0.5.0.0.20140515+dfsg-2_all bug

名前

       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() の引き数
       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) に設定しなければならない。

返り値

       エラーが起こると  NULL が返され、 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_addrtypeAF_INET  なら   sizeof(struct   in_addr)   に、
              h_addrtypeAF_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)

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 3.65 の一部  である。プロジェクト
       の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。