INET_NTOP
Section: Linux Programmer's Manual (3)
Updated: 2008-11-11
Index
JM Home Page
roff page
名前
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)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- 準拠
-
- バグ
-
- 例
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 03:26:45 GMT, April 25, 2010