RtlIpv6StringToAddressEx 函式會將 IPv6 位址、範圍標識碼和埠號碼的字串表示法轉換成二進位 IPv6 位址、範圍標識碼和埠。
語法
NTSYSAPI NTSTATUS RtlIpv6StringToAddressExA(
[in] PCSTR AddressString,
[out] in6_addr *Address,
[out] PULONG ScopeId,
[out] PUSHORT Port
);
參數
[in] AddressString
緩衝區的指標,其中包含 IPv6 位址、範圍標識碼和埠號碼的 NULL 結尾字串表示法。
[out] Address
要儲存 IPv6 位址的二進位表示法的指標。
[out] ScopeId
指向儲存 IPv6 位址範圍識別碼位置的指標。 如果 AddressString 參數不包含範圍識別碼的字串表示法,則此參數中會傳回零。
[out] Port
儲存埠號的指標。 埠號採用網路位元組順序格式。 如果 AddressString 參數不包含埠號碼的字串表示法,則此參數中會傳回零。
返回值
如果函式成功,則傳回值為 STATUS_SUCCESS。
如果函式失敗,傳回值會是下列其中一個錯誤碼。
| 回傳碼 | Description |
|---|---|
|
無效的參數已傳遞至函式。 如果 AddressString 參數所指向的字串不包含 IPv6 位址的正確字串表示法,則會傳回此錯誤。
此錯誤碼定義在 Ntstatus.h 標頭檔中。 |
|
使用 FormatMessage 來取得傳回錯誤的訊息字串。 |
備註
RtlIpv6StringToAddressEx 函式可用來將 IPv6 位址、範圍標識碼和埠號碼的字串表示法轉換成二進位 IPv6 位址、範圍標識碼和埠號碼。 IPv6 位址會依網路順序傳回 (位元組從左到右排序)。 連接埠號碼和範圍 ID 會依網路順序傳回。
RtlIpv6StringToAddressEx 是方便函式,不需要載入 Windows 通訊端 DLL 即可存取 Windows 通訊端中提供的函式,以執行字串到 IP 位址轉換。
AddressString 參數所指向的字串必須以 IPv6 位址字串的形式表示,後面接著選擇性百分比字元和範圍識別碼字串。 IPv6 位址和範圍 ID 字串必須括在方括弧中。 IPv6 位址和範圍識別碼字串後面的右方括弧後面可以接著選擇性冒號和連接埠號碼的字串表示法。 IPv6 位址的基本字串表示形式由 8 個十六進位數字組成,以冒號分隔。 一串連續的零數字可以用雙冒號取代。 IPv6 位址的字串表示法中只能有一個雙冒號。 如果位址是 IPv4 相容位址、IPv4 對應的 IPv6 位址或 ISATAP 位址,則最後 32 位可以以 IPv4 樣式的點狀八位元組表示法表示。 如需詳細資訊,請參閱 IETF 發佈的 RFC 5942 第 5 節。
定義 UNICODE 或 _UNICODE 時, RtlIpv6StringToAddressEx 會定義為 RtlIpv6StringToAddressExW,這是此函式的 Unicode 版本。 AddressString 參數會定義為 PCWSTR 資料類型。
當未定義 UNICODE 和 _UNICODE 時, RtlIpv6StringToAddressEx 會定義為 RtlIpv6StringToAddressExA,這是函式的 ANSI 版本。 AddressString 參數定義為 PCSTR 資料類型。
IN6_ADDR結構定義在 In6addr.h 標頭檔中。
需求
| Requirement | 價值觀 |
|---|---|
| 最低支援的用戶端 | Windows Vista [傳統型應用程式 |UWP 應用程式] |
| 支援的最低伺服器 | Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
| 目標平臺 | 窗戶 |
| Header | ip2string.h (包括 Mstcpip.h) |
| Library | ntdll.lib |
| DLL | Ntdll.dll |
另請參閱
GetModuleHandle
GetProc位址
IN6_ADDR
InetNtop
伊內普頓
載入程式庫
RtlIpv4AddressToString
RtlIpv4AddressToStringEx
RtlIpv4StringTo位址
RtlIpv4StringToAddressEx
RtlIpv6AddressToString
RtlIpv6AddressToStringEx
RtlIpv6StringTo位址
inet_addr
inet_ntoa