RtlIpv4StringToAddress 函式會將 IPv4 位址的字串表示法轉換成二進位 IPv4 位址。
語法
NTSYSAPI NTSTATUS RtlIpv4StringToAddressW(
[in] PCWSTR S,
[in] BOOLEAN Strict,
[out] LPCWSTR *Terminator,
[out] in_addr *Addr
);
參數
[in] S
緩衝區的指標,其中包含 IPv4 位址的 NULL 結尾字串表示法。
[in] Strict
此值指出字串是否必須是以嚴格的四部分點十進位表示法表示的 IPv4 位址。 如果此參數為 TRUE,則字串必須是點十進位,包含四個部分。 如果此參數為 FALSE,則允許四種可能的形式中的任何一種,具有十進位、八進制或十六進位表示法。 如需詳細資訊,請參閱備註部分。
[out] Terminator
接收終止轉換字串之字元指標的參數。 呼叫端可以使用這來從字串中提取更多資訊。
[out] Addr
要儲存 IPv4 位址的二進位表示法的指標。
返回值
如果函式成功,則傳回值為 STATUS_SUCCESS。
如果函式失敗,傳回值會是下列其中一個錯誤碼。
| 回傳碼 | Description |
|---|---|
|
無效的參數已傳遞至函式。 如果 Strict 參數設為 TRUE,但 S 參數所指向的字串不包含 IPv4 位址的四部分點十進位字串表示法,則會傳回此錯誤。 如果 S 參數所指向的字串不包含 IPv4 位址的正確字串表示法,也會傳回此錯誤。
此錯誤碼定義在 Ntstatus.h 標頭檔中。 |
|
使用 FormatMessage 來取得傳回錯誤的訊息字串。 |
備註
RtlIpv4StringToAddress 函式可用來將 IPv4 位址的字串表示法轉換成依網路順序傳回的 IPv4 位址 (位元組從左到右排序) 。
RtlIpv4StringToAddress 是方便函式,不需要載入 Windows 通訊端 DLL 即可存取 Windows 通訊端中提供的函式,以執行字串到 IP 位址轉換。
如果 Strict 參數設為 TRUE,則 S 參數所指向的字串必須採用嚴格的點十進位表示法。 這種嚴格的格式需要指定四個部分。 每個部分都被解釋為資料的十進位位元組,並從左到右分配給 IPv4 位址的四個位元組。
當 Strict 參數設定為 FALSE 時, S 參數所指向的字串可能是數種可能格式中的任何一種。 當 S 參數指向的緩衝區包含由三部分組成的位址字串時,最後一部分會解譯為 16 位元數量,並放置在網路位址最右邊的兩個位元組中。 這使得三部分位址格式方便將 B 類網路位址指定為「128.net.host」。 當 S 參數指向的緩衝區包含兩部分位址字串時,最後一部分會解譯為 24 位元數量,並放置在網路位址最右邊的三個位元組中。 這使得兩部分位址格式方便地將 A 類網路位址指定為「net.host」。 當 S 參數指向的緩衝區只包含一部分位址字串時,值會直接儲存在網路位址中,而不需要任何位元組重新排列。
成功時, Terminator 參數會指向終止已轉換字串的字元。 這可讓應用程式將包含 IP 位址和其他資訊的字串傳遞至 RtlIpv4StringToAddress 函式,然後剖析其餘資訊。
定義 UNICODE 或 _UNICODE 時, RtlIpv4StringToAddress 會定義為 RtlIpv4StringToAddressW,這是此函式的 Unicode 版本。 S 參數定義為 PCWSTR 資料類型,而 Terminator 參數定義為 LPCWSTR 資料類型。
當未定義 UNICODE 和 _UNICODE 時, RtlIpv4StringToAddress 會定義為 RtlIpv4StringToAddressA,這是函式的 ANSI 版本。 S 和 Terminator 參數定義為 PCSTR 資料類型。
IN_ADDR結構定義在 Inaddr.h 標頭檔中。
備註
ip2string.h 標頭會將 RtlIpv4StringToAddress 定義為別名,根據 UNICODE 前置處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型 的慣例。
需求
| Requirement | 價值觀 |
|---|---|
| 最低支援的用戶端 | Windows Vista [傳統型應用程式 |UWP 應用程式] |
| 支援的最低伺服器 | Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
| 目標平臺 | 窗戶 |
| Header | ip2string.h(包括 Mstcpip.h、Ip2string.h) |
| Library | ntdll.lib |
| DLL | ntdll.dll |