EN JA
INET_NTOP(3)
INET_NTOP(3) Linux Programmer's Manual INET_NTOP(3)

名前

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 で指定されたサイズを超過してしまう。

準拠

POSIX.1-2001. 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 プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。
2008-11-11 Linux