Provided by: manpages-ja-dev_0.5.0.0.20221215+dfsg-1_all bug

名前

       inet_ntop - IPv4/IPv6 アドレスをバイナリ形式からテキスト形式に変換する

書式

       #include <arpa/inet.h>

       const char *inet_ntop(int af, const void *src,
                             char *dst, socklen_t size);

説明

       この関数は、 af アドレスファミリーのネットワークアドレス構造体 src を文字列に変換する。 変
       換結果の文字列は、 dst が指すバッファーにコピーされる。 dst は NULL でないポインターでなけ
       ればならない。 呼び出し時に、このバッファーで利用できるバイト数を 引数 size に指定する。

       inet_ntop()  は inet_ntoa(3)  関数を拡張して複数のアドレスファミリーを扱えるようにしたもの
       である。 今後は inet_ntoa(3)  は使わず、 inet_ntop()  を使うようにすると良いだろう。  現在
       サポートされているアドレスファミリーは以下の通り:

       AF_INET
              この場合 src は (ネットワークバイトオーダーの)  struct in_addr へのポインターとみな
              され、この構造体の内容が ドット区切りの 10 進数形式 "ddd.ddd.ddd.ddd" の IPv4  ネッ
              トワークアドレスに変換される。 バッファー dst は少なくとも INET_ADDRSTRLEN バイトの
              長さを持たなければならない。

       AF_INET6
              この場合 src は (ネットワークバイトオーダーの)  struct in6_addr  へのポインターとみ
              なされ、この構造体の内容が、  (このアドレスに対してもっとも適切な)  IPv6 ネットワー
              クアドレスの表示形式に変換される。 バッファー dst は少なくとも INET6_ADDRSTRLEN  バ
              イトの長さを持たなければならない。

返り値

       成功すると、  inet_ntop()  は dst への (NULL でない) ポインターを返す。 エラーがあった場合
       は NULL を返し、 errno をエラーを示す値に適切に設定する。

エラー

       EAFNOSUPPORT
              af がサポートされているアドレスファミリーでなかった。

       ENOSPC 変換されたアドレス文字列の長さが size で指定されたサイズを超過してしまう。

属性

       この節で使用されている用語の説明は attributes(7) を参照のこと。

       ┌────────────┬───────────────┬────────────────┐
       │InterfaceAttributeValue          │
       ├────────────┼───────────────┼────────────────┤
       │inet_ntop() │ Thread safety │ MT-Safe locale │
       └────────────┴───────────────┴────────────────┘

準拠

       POSIX.1-2001. POSIX.1-2008, RFC 2553 では最後の引数 size のプロトタイプを size_t  型と定義
       している。多くのシステムでは  RFC 2553  にしたがっている。 glibc 2.0 と 2.1 では size_t だ
       が、 glibc 2.2 以降では socklen_t となっている。

バグ

       AF_INET6 は IPv4 がマップされた IPv6 アドレスを IPv6 形式に変換してしまう。

       inet_pton(3)  を参照。

関連項目

       getnameinfo(3), inet(3), inet_pton(3)

この文書について

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