次の方法で共有


RtlIpv4StringToAddressA 関数 (ip2string.h)

RtlIpv4StringToAddress 関数は、IPv4 アドレスの文字列表現をバイナリ IPv4 アドレスに変換します。

構文

NTSYSAPI NTSTATUS RtlIpv4StringToAddressA(
  [in]  PCSTR   S,
  [in]  BOOLEAN Strict,
  [out] PCSTR   *Terminator,
  [out] in_addr *Addr
);

パラメーター

[in] S

IPv4 アドレスの -terminated 文字列表現NULL を含むバッファーへのポインター。

[in] Strict

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

[out] Terminator

変換された文字列を終了した文字へのポインターを受け取るパラメーター。 これは、呼び出し元が文字列から詳細情報を抽出するために使用できます。

[out] Addr

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

戻り値

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

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

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

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

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

備考

RtlIpv4StringToAddress 関数を使用して、IPv4 アドレスの文字列形式をネットワーク順 (左から右に並べ替えられたバイト数) で返される IPv4 アドレスに変換します。

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

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

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

成功した場合、Terminator パラメーターは、変換された文字列を終了した文字を指します。 これにより、アプリケーションは IP アドレスと追加情報を含む文字列を RtlIpv4StringToAddress 関数に渡し、残りの情報を解析できます。

UNICODE または_UNICODEが定義されている場合、RtlIpv4StringToAddress は、この関数の Unicode バージョンである RtlIpv4StringToAddressWを するように定義されます。 S パラメーターは PCWSTR データ型に定義され、Terminator パラメーターは LPCWSTR データ型に定義されます。

UNICODE と_UNICODEの両方が定義されていない場合、RtlIpv4StringToAddress は、この関数の ANSI バージョンである RtlIpv4StringToAddressAを するように定義されます。 S パラメーターと Terminator パラメーターは、PCSTR データ型に定義されます。

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

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

手記

ip2string.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして RtlIpv4StringToAddress を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista [デスクトップ アプリ |UWP アプリ]
サポートされる最小サーバー Windows Server 2008 [デスクトップ アプリ |UWP アプリ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー ip2string.h (Mstcpip.h、Ip2string.h を含む)
ライブラリ ntdll.lib
DLL ntdll.dll

関連項目

GetModuleHandle を する

GetProcAddress の

InetNtop を する

InetPton

LoadLibrary

RtlIpv4AddressToString を する

RtlIpv4AddressToStringEx の

RtlIpv4StringToAddressEx の

RtlIpv6AddressToString を する

RtlIpv6AddressToStringEx を する

RtlIpv6StringToAddress の

RtlIpv6StringToAddressEx の

inet_addr

inet_ntoa