INET_NTOP
Section: Linux Programmer's Manual (3)
Updated: 2020-06-09
Index JM Home 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 で指定されたサイズを超過してしまう。
属性
この節で使用されている用語の説明は attributes(7) を参照のこと。
Interface |
Attribute |
Value
|
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/ に書かれている。
関連キーワード
inet,
INET,
アドレス,
変換,
NTOP,
dst,
ntop,
size,
エラー,
ポインター
Linux マニュアル 一覧
[man1]
[man2]
[man3]
[man4]
[man5]
[man6]
[man7]
[man8]
[a]
[b]
[c]
[d]
[e]
[f]
[g]
[h]
[i]
[j]
[k]
[l]
[m]
[n]
[o]
[p]
[q]
[r]
[s]
[t]
[u]
[v]
[w]
[x]
[y]
[z]
Index
- 名前
- 書式
- 説明
- 返り値
- エラー
- 属性
- 準拠
- バグ
- 例
- 関連項目
- この文書について
This document was created by man2html, using the manual pages.
Time: 12:08:37 GMT, June 11, 2022