RtlIpv4StringToAddressExW 関数 (ip2string.h)

RtlIpv4StringToAddressEx 関数は、IPv4 アドレスとポート番号の文字列表現をバイナリ IPv4 アドレスとポートに変換します。

構文

NTSYSAPI NTSTATUS RtlIpv4StringToAddressExW(
  [in]  PCWSTR  AddressString,
  [in]  BOOLEAN Strict,
  [out] in_addr *Address,
  [out] PUSHORT Port
);

パラメーター

[in] AddressString

IPv4 アドレスの NULL で終わる文字列表現の後に、オプションのコロンとポート番号の文字列表現が続くバッファーへのポインター。

[in] Strict

文字列が厳密な 4 部構成のドット付き 10 進数表記で表される IPv4 アドレスである必要があるかどうかを示す 値。 このパラメーターが TRUE の場合、文字列は 4 つの部分でドット 10 進数にする必要があります。 このパラメーターが FALSE の場合、10 進数、8 進数、または 16 進数表記を使用して、Ipv4 アドレスの文字列表現に対して 4 つの形式のいずれかを使用できます。 詳細については、「解説」を参照してください。

[out] Address

IPv4 アドレスのバイナリ表現を格納するポインター。 IPv4 アドレスは、ネットワークのバイト順に格納されます。

[out] Port

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

戻り値

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

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

リターン コード 説明
STATUS_INVALID_PARAMETER
無効なパラメーターが関数に渡されました。 Strict パラメーターが TRUE に設定されているが、AddressString パラメーターが指す文字列に IPv4 アドレスの 4 部構成のドット付き 10 進文字列表現が含まれていない場合、このエラーが返されます。 AddressString パラメーターが指す文字列に IPv4 アドレスの適切な文字列表現が含まれていない場合も、このエラーが返されます。

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

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

注釈

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

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

Strict パラメーターが TRUE に設定されている場合、AddressString パラメーターが指す文字列は、厳密なドット 10 進表記である必要があります。 この厳密な形式では、4 つの部分を指定する必要があります。 各部分はデータの 10 進バイトとして解釈され、左から右へ、IPv4 アドレスの 4 バイトに割り当てられます。

Strict パラメーターが FALSE に設定されている場合、AddressString パラメーターが指す文字列は、使用可能な複数の形式のいずれかになります。 AddressString パラメーターによって指されるバッファーに 3 部構成のアドレス文字列が含まれている場合、最後の部分は 16 ビット数量として解釈され、ネットワーク アドレスの右端の 2 バイトに配置されます。 これにより、クラス B のネットワーク アドレスを "128.net.host" として指定する場合に、3 部構成のアドレス形式が便利になります。 AddressString パラメーターによって指されるバッファーに 2 部構成のアドレス文字列が含まれている場合、最後の部分は 24 ビット数量として解釈され、ネットワーク アドレスの右端の 3 バイトに配置されます。 これにより、クラス A のネットワーク アドレスを "net.host" として指定する場合に、2 つの部分のアドレス形式が便利になります。 AddressString パラメーターによって指されるバッファーに 1 部構成のアドレス文字列のみが含まれている場合、値はバイト再配置なしでネットワーク アドレスに直接格納されます。

AddressString パラメーターによって指されるバッファーには、IPv4 アドレス文字列の後に、オプションのコロンとポート番号の文字列表現が含まれる場合があります。 AddressString パラメーターが指すバッファーにポート番号文字列が含まれている場合は、ポート番号のバイナリ表現が Port パラメーターで返されます。 AddressString パラメーターが指すバッファーにポート番号が含まれていない場合は、Port パラメーターに 0 が返されます。

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

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

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

RtlIpv4StringToAddressEx 関数を含むインポート ライブラリは、Windows Vista 用にリリースされた Microsoft Windows ソフトウェア開発キット (Windows SDK) (SDK) には含まれていません。 RtlIpv4StringToAddressEx 関数は、Windows ドライバー キット (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

IN_ADDR

InetNtop

InetPton

LoadLibrary

RtlIpv4AddressToString

RtlIpv4AddressToStringEx

RtlIpv4StringToAddress

RtlIpv6AddressToString

RtlIpv6AddressToStringEx

RtlIpv6StringToAddress

RtlIpv6StringToAddressEx

inet_addr

inet_ntoa