RtlIpv6StringToAddressExW 関数 (ip2string.h)

RtlIpv6StringToAddressEx 関数は、IPv6 アドレス、スコープ ID、およびポート番号の文字列表現をバイナリ IPv6 アドレス、スコープ ID、およびポートに変換します。

構文

NTSYSAPI NTSTATUS RtlIpv6StringToAddressExW(
  [in]  PCWSTR   AddressString,
  [out] in6_addr *Address,
  [out] PULONG   ScopeId,
  [out] PUSHORT  Port
);

パラメーター

[in] AddressString

IPv6 アドレス、スコープ ID、およびポート番号の NULL で終わる文字列表現を含むバッファーへのポインター。

[out] Address

IPv6 アドレスのバイナリ表現を格納するポインター。

[out] ScopeId

IPv6 アドレスのスコープ ID が格納される場所へのポインター。 AddressString パラメーターにスコープ ID の文字列表現が含まれていない場合、このパラメーターでは 0 が返されます。

[out] Port

ポート番号が格納されているポインター。 ポート番号は、ネットワークのバイト順形式です。 AddressString パラメーターにポート番号の文字列表現が含まれていない場合、このパラメーターでは 0 が返されます。

戻り値

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

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

リターン コード 説明
STATUS_INVALID_PARAMETER
無効なパラメーターが関数に渡されました。 AddressString パラメーターが指す文字列に IPv6 アドレスの適切な文字列表現が含まれていない場合、このエラーが返されます。

このエラー コードは Ntstatus.h ヘッダー ファイルで定義されています。

その他
FormatMessage を使用して、返されたエラーのメッセージ文字列を取得します。

注釈

RtlIpv6StringToAddressEx 関数は、IPv6 アドレス、スコープ ID、およびポート番号の文字列表現をバイナリ IPv6 アドレス、スコープ ID、およびポート番号に変換するために使用されます。 IPv6 アドレスは、ネットワーク順 (左から右に並べ替えられたバイト数) で返されます。 ポート番号とスコープ ID は、ネットワーク順に返されます。

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

AddressString パラメーターが指す文字列は、IPv6 アドレス文字列の形式で表し、その後に省略可能なパーセント文字とスコープ ID 文字列を指定する必要があります。 IPv6 アドレスとスコープ ID 文字列は角かっこで囲む必要があります。 IPv6 アドレスとスコープ ID 文字列の後の右角かっこの後に、オプションのコロンとポート番号の文字列表現が続く場合があります。 IPv6 アドレスの基本的な文字列表現は、コロンで区切られた 8 つの 16 進数で構成されます。 連続する 0 個の数値の文字列は、二重コロンに置き換えることができます。 IPv6 アドレスの文字列形式では、1 つの double-colon しか使用できません。 アドレスが IPv4 互換アドレス、IPv4 マップ IPv6 アドレス、または ISATAP アドレスである場合、最後の 32 ビットは IPv4 スタイルのドットオクテット表記で表すことができます。 詳細については、IETF によって公開された RFC 5942 のセクション 5 を参照してください。

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

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

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

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

要件

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

こちらもご覧ください

GetModuleHandle

GetProcAddress

IN6_ADDR

InetNtop

InetPton

LoadLibrary

RtlIpv4AddressToString

RtlIpv4AddressToStringEx

RtlIpv4StringToAddress

RtlIpv4StringToAddressEx

RtlIpv6AddressToString

RtlIpv6AddressToStringEx

RtlIpv6StringToAddress

inet_addr

inet_ntoa