inet_ntop() - IP アドレス形式の 2 進数からテキストへの変換

標準

標準/拡張機能 C/C++ 依存項目

RFC2553
Single UNIX Specification、バージョン 3

両方 z/OS® V1R2

形式

#define _OPEN_SYS_SOCK_IPV6
#include <arpa/inet.h>

const char *inet_ntop(int af, const void *src, char *dst, socklen_t size);
SUSV3:
#define _POSIX_C_SOURCE 200112L
#include <arpa/inet.h>

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

機能説明

inet_ntop() 関数は、src で指定された、バイナリー形式の IP アドレスを、標準テキスト形式に変換し、その結果を dst に入れます。ただし、dst 内の使用可能スペース size が十分にあることが前提になります。引数 af は、IP アドレスのファミリーを指定します。これは、AF_INET または AF_INET6 が可能です。

引数 src は、af 引数が AF_INET の場合は、IPv4 インターネット・アドレス、af 引数が AF_INET6 の場合は、IPv6 インターネット・アドレスが入ったバッファーを指します。アドレスはネットワーク・バイト・オーダーでなければなりません。

引数 dst は、この関数が結果のテキスト・ストリングを保管するバッファーを指します。size 引数は、このバッファーのサイズを指定します。アプリケーションは、非 NULL の dst 引数を指定する必要があります。IPv6 アドレスの場合、バッファーは 46 バイト以上が必要です。IPv4 アドレスの場合、バッファーは 16 バイト以上が必要です。

アプリケーションが、IPv4 および IPv6 アドレスをストリング形式に保管するための適切なサイズのバッファーを 簡単に宣言できるようにするために、次の 2 つの定数が <netinet/in.h> に定義されています。
#define INET_ADDRSTRLEN 16
#define INET6_ADDRSTRLEN 46
注: inet_ntop() 関数は、拡張 ASCII の拡張機能のレベルに依存します。詳細は、拡張 ASCII サポートを参照してください。

戻り値

正常に実行された場合、inet_ntop() は、変換されたアドレスを含むバッファーへのポインターを戻します。

正常に実行されなかった場合、inet_ntop() は NULL を戻して、errno を次のいずれかの 値に設定します。
エラー・コード
説明
EAFNOSUPPORT
af に指定されたアドレス・ファミリーは、サポートされません。
ENOSPC
宛先バッファー size が、小さすぎます。
注: 拡張 ASCII を使用する場合、inet_ntop() 関数は、拡張 ASCII の拡張機能のレベルに依存します。詳細は、拡張 ASCII サポートを参照してください。

関連情報