RtlIpv6AddressToStringExA 関数 (ip2string.h)

RtlIpv6AddressToStringEx 関数は、IPv6 アドレス、スコープ ID、およびポート番号を文字列に変換します。

構文

NTSYSAPI NTSTATUS RtlIpv6AddressToStringExA(
  [in]      const in6_addr *Address,
  [in]      ULONG          ScopeId,
  [in]      USHORT         Port,
  [out]     PSTR           AddressString,
  [in, out] PULONG         AddressStringLength
);

パラメーター

[in] Address

ネットワーク バイト順の IPv6 アドレス。

[in] ScopeId

ネットワークのバイト順での IPv6 アドレスのスコープ ID。 このパラメーターは省略可能です。

[in] Port

ネットワーク バイト順形式のポート番号。 このパラメーターは省略可能です。

[out] AddressString

IP アドレス、スコープ ID、およびポートの NULL で終わる文字列表現を受け取るバッファーへのポインター。 このバッファーは、少なくともINET6_ADDRSTRLEN文字を保持するのに十分な大きさにする必要があります。 INET6_ADDRSTRLEN値は 、Ws2ipdef.h ヘッダー ファイルで定義されます。

[in, out] AddressStringLength

入力時に、 AddressString パラメーターが指すバッファーに収まる文字数 (NULL 終端記号を含む)。

出力時に、このパラメーターには AddressString パラメーターが指すバッファーに実際に書き込まれた文字数が含まれます。

戻り値

関数が成功した場合、戻り値は STATUS_SUCCESS

関数が失敗した場合、戻り値は次のいずれかのエラー コードになります。

リターン コード 説明
STATUS_INVALID_PARAMETER
無効なパラメーターが関数に渡されました。 このエラーは、AddressString または AddressStringLength パラメーターで NULL ポインターが渡された場合に返されます。 このエラーは、 AddressString パラメーターが指すバッファーの長さが、IPv6 アドレス、スコープ ID、およびポートの文字列表現を受け取るのに十分な大きさでない場合にも返されます。
その他
FormatMessage を使用して、返されたエラーのメッセージ文字列を取得します。

注釈

RtlIpv6AddressToStringEx 関数は、IPv6 アドレス、スコープ ID、ポート番号をインターネット形式の IPv6 アドレスの文字列表現に変換し、その後にスコープ ID の文字列表現を続けてポートの文字列表現に変換するために使用されます。 スコープ ID とポート番号は省略可能なパラメーターです。

返される IPv6 アドレスの基本的な文字列表現は、コロンで区切られた 8 つの 16 進数で構成されます。 連続する 0 個の 16 進数の文字列は、二重コロンに置き換えられます。 IPv6 アドレスの文字列形式に使用できる二重コロンは 1 つだけです。 アドレスが IPv4 互換アドレス、IPv4 マップ IPv6 アドレス、または ISATAP アドレスである場合、最後の 32 ビットは IPv4 スタイルのドットオクテット表記で表されます。 詳細については、IETF によって公開された RFC 5942 のセクション 5 を参照してください。

スコープ ID が指定されている場合、スコープ ID の文字列表現は、IPv6 アドレスの文字列表現からパーセント文字 ('%') で区切られます。 ポート番号が指定されている場合、IPv6 アドレスとスコープ ID の文字列表現は、角かっこ (先頭の '[' 文字の後に IPv6 アドレスが続き、その後に '% 文字が続き、末尾の ']' 文字を持つスコープ ID) で囲まれます。 ポート番号は、右中かっこ文字の後に 10 進数のポート番号の文字列表現が続くコロンとして表されます。

RtlIpv6AddressToStringEx は、文字列変換への IP アドレスを実行するために Windows ソケットで提供される関数にアクセスするために Windows ソケット DLL を読み込む必要のない便利な関数です。

AddressString パラメーターが指すバッファーの長さが、IP アドレス、スコープ ID、およびポートの文字列表現を受け取るのに十分な大きさでない場合、RtlIpv6AddressToStringExERROR_INVALID_PARAMETERを返し、AddressStringLength パラメーターに必要なバッファー長を設定します。

UNICODE または_UNICODEが定義されている場合、 RtlIpv6AddressToStringEx は、この関数の Unicode バージョンである RtlIpv6AddressToStringExW に定義されます。 AddressString パラメーターは PWSTR データ型に対して定義されます。

UNICODE と_UNICODEの両方が定義されていない場合、 RtlIpv6AddressToStringEx は、この関数の ANSI バージョンである RtlIpv6AddressToStringExA に定義されます。 AddressString パラメーターは、PSTR データ型に対して定義されています。

IN6_ADDR構造体は、In6addr.h ヘッダー ファイルで定義されています。

RtlIpv6AddressToStringEx 関数を含むインポート ライブラリは、Windows Vista 用にリリースされた Microsoft Windows ソフトウェア開発キット (Windows SDK) (SDK) には含まれていません。 RtlIpv6AddressToStringEx 関数は、Windows ドライバー キット (WDK) に含まれる Ntdll.lib インポート ライブラリに含まれています。 アプリケーションでは 、GetModuleHandle 関数と GetProcAddress 関数を使用して 、Ntdll.dll から関数ポインターを取得し、この関数を呼び出すこともできます。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー ip2string.h (Mstcpip.h を含む)
[DLL] Ntdll.dll

こちらもご覧ください

GetModuleHandle
GetProcAddress
InetNtop
InetPton
LoadLibrary
RtlIpv4AddressToString
RtlIpv4AddressToStringEx
RtlIpv4StringToAddress
RtlIpv4StringToAddressEx
RtlIpv6AddressToString
RtlIpv6StringToAddress
RtlIpv6StringToAddressEx
inet_addr
inet_ntoa