ParseNetworkString 函式 (iphlpapi.h)
ParseNetworkString函式會剖析輸入網路字串,並檢查它是否為指定 IP 網路字串類型的合法標記法。 如果字串符合類型及其規格,函式可以選擇性地傳回剖析的結果。
語法
IPHLPAPI_DLL_LINKAGE DWORD ParseNetworkString(
[in] const WCHAR *NetworkString,
[in] DWORD Types,
[out, optional] PNET_ADDRESS_INFO AddressInfo,
[out, optional] USHORT *PortNumber,
[out, optional] BYTE *PrefixLength
);
參數
[in] NetworkString
要剖析之 Null 終止之網路字串的指標。
[in] Types
要剖析的 IP 網路字串類型。 此參數是由 Iphlpapi.h 標頭檔中定義的其中一個網路字串類型所組成。
值 |
意義 |
- NET_STRING_IPV4_ADDRESS
- 0x00000001
|
NetworkString參數會使用網際網路標準虛線小數標記法指向 IPv4 位址。
網路連接埠或首碼不可出現在網路字串中。
範例網路字串如下:
192.168.100.10
|
- NET_STRING_IPV4_SERVICE
- 0x00000002
|
NetworkString參數會使用網際網路標準虛線小數標記法指向 IPv4 服務。
網路埠是網路字串的一部分。 前置詞不得出現在網路字串中。
範例網路字串如下:
192.168.100.10:80
|
- NET_STRING_IPV4_NETWORK
- 0x00000004
|
NetworkString參數會使用網際網路標準虛線小數標記法指向 IPv4 網路。
必須有使用類別網域間路由選擇 (CIDR) 標記法的網路首碼做為網路字串的一部分。 網路連接埠不可出現在網路字串中。
範例網路字串如下:
192.168.100/24
|
- NET_STRING_IPV6_ADDRESS
- 0x00000008
|
NetworkString參數會使用網際網路標準十六進位編碼來指向 IPv6 位址。
IPv6 領域識別碼可能會出現在網路字串中。 網路連接埠或首碼不可出現在網路字串中。
範例網路字串如下:
21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A%2
|
- NET_STRING_IPV6_ADDRESS_NO_SCOPE
- 0x00000008
|
NetworkString參數會使用網際網路標準十六進位編碼來指向 IPv6 位址。 網路字串中不得有 IPv6 範圍識別碼。 網路連接埠或首碼不可出現在網路字串中。
範例網路字串如下:
21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A
|
- NET_STRING_IPV6_SERVICE
- 0x00000020
|
NetworkString參數會使用網際網路標準十六進位編碼指向 IPv6 服務。
網路埠是網路字串的一部分。 IPv6 領域識別碼可能會出現在網路字串中。 前置詞不得出現在網路字串中。
具有範圍識別碼的網路字串範例如下:
[21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A%2]:8080
|
- NET_STRING_IPV6_SERVICE_NO_SCOPE
- 0x00000040
|
NetworkString參數會使用網際網路標準十六進位編碼指向 IPv6 服務。
網路埠是網路字串的一部分。 網路字串中不得有 IPv6 範圍識別碼。 前置詞不得出現在網路字串中。
範例網路字串如下:
21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A:8080
|
- NET_STRING_IPV6_NETWORK
- 0x00000080
|
NetworkString參數會使用網際網路標準十六進位編碼指向 IPv6 網路。
必須有使用 CIDR 標記法的網路首碼做為網路字串的一部分。 網路連接埠或領域識別碼不可出現在網路字串中。
範例網路字串如下:
21DA:D3::/48
|
- NET_STRING_NAMED_ADDRESS
- 0x00000100
|
NetworkString參數會使用網域名稱系統 (DNS) 名稱指向網際網路位址。
網路連接埠或首碼不可出現在網路字串中。
範例網路字串如下:
www.microsoft.com
|
- NET_STRING_NAMED_SERVICE
- 0x00000200
|
NetworkString參數會使用 DNS 名稱指向網際網路服務。
網路埠必須存在於網路字串中。
範例網路字串如下:
www.microsoft.com:80
|
- NET_STRING_IP_ADDRESS
- 0x00000009
|
NetworkString參數會使用網際網路標準虛線十進位標記法或使用網際網路標準十六進位編碼的 IPv6 位址指向 IPv4 位址。
IPv6 領域識別碼可能會出現在網路字串中。 網路連接埠或首碼不可出現在網路字串中。
此類型符合 NET_STRING_IPV4_ADDRESS 或 NET_STRING_IPV6_ADDRESS 類型。
|
- NET_STRING_IP_ADDRESS_NO_SCOPE
- 0x00000011
|
NetworkString參數會使用網際網路標準虛線十進位標記法或使用網際網路標準十六進位編碼的 IPv6 位址指向 IPv4 位址。
網路字串中不得有 IPv6 範圍識別碼。 網路連接埠或首碼不可出現在網路字串中。
此類型符合 NET_STRING_IPV4_ADDRESS 或 NET_STRING_IPV6_ADDRESS_NO_SCOPE 類型。
|
- NET_STRING_IP_SERVICE
- 0x00000022
|
NetworkString參數會指向 IPv4 服務或 IPv6 服務。
網路埠是網路字串的一部分。 IPv6 領域識別碼可能會出現在網路字串中。 前置詞不得出現在網路字串中。
此類型符合 NET_STRING_IPV4_SERVICE 或 NET_STRING_IPV6_SERVICE 類型。
|
- NET_STRING_IP_SERVICE_NO_SCOPE
- 0x00000042
|
NetworkString參數指向 IPv4 服務或 IPv6 服務。
網路埠是網路字串的一部分。 IPv6 範圍識別碼不得出現在網路字串中。 前置詞不得出現在網路字串中。
此類型符合 NET_STRING_IPV4_SERVICE 或 NET_STRING_IPV6_SERVICE_NO_SCOPE 類型。
|
- NET_STRING_IP_NETWORK
- 0x00000084
|
NetworkString參數指向 IPv4 或 IPv6 網路。
必須有使用 CIDR 標記法的網路首碼做為網路字串的一部分。 網路埠或範圍識別碼不得存在於網路中。
此類型符合 NET_STRING_IPV4_NETWORK 或 NET_STRING_IPV6_NETWORK 類型。
|
- NET_STRING_ANY_ADDRESS
- 0x00000209
|
NetworkString參數會指向網際網路標準點十進位標記法中的 IPv4 位址、網際網路標準十六進位編碼中的 IPv6 位址,或 DNS 名稱。
IPv6 範圍識別碼可能存在於 IPv6 位址的網路字串中。 網路連接埠或首碼不可出現在網路字串中。
此類型符合 NET_STRING_NAMED_ADDRESS 或 NET_STRING_IP_ADDRESS 類型。
|
- NET_STRING_ANY_ADDRESS_NO_SCOPE
- 0x00000211
|
NetworkString參數會指向網際網路標準點十進位標記法中的 IPv4 位址、網際網路標準十六進位編碼中的 IPv6 位址,或 DNS 名稱。
IPv6 範圍識別碼不得出現在 IPv6 位址的網路字串中。 網路連接埠或首碼不可出現在網路字串中。
此類型符合 NET_STRING_NAMED_ADDRESS 或 NET_STRING_IP_ADDRESS_NO_SCOPE 類型。
|
- NET_STRING_ANY_SERVICE
- 0x00000222
|
NetworkString參數會使用 IP 位址標記法或 DNS 名稱,指向 IPv4 服務或 IPv6 服務。
網路埠是網路字串的一部分。 IPv6 領域識別碼可能會出現在網路字串中。 前置詞不得出現在網路字串中。
此類型符合 NET_STRING_NAMED_SERVICE 或 NET_STRING_IP_SERVICE 類型。
|
- NET_STRING_ANY_SERVICE_NO_SCOPE
- 0x00000242
|
NetworkString參數會使用 IP 位址標記法或 DNS 名稱,指向 IPv4 服務或 IPv6 服務。
網路埠是網路字串的一部分。 IPv6 範圍識別碼不得出現在網路字串中。 前置詞不得出現在網路字串中。
此類型符合 NET_STRING_NAMED_SERVICE 或 NET_STRING_IP_SERVICE_NO_SCOPE 類型。
|
[out, optional] AddressInfo
成功時,函式會傳回包含剖析 IP 位址資訊的 NET_ADDRESS_INFO 結構的指標,如果此參數中未傳遞 Null 指標。
[out, optional] PortNumber
成功時,如果此參數中未傳遞 Null 指標,函式會以主機順序傳回剖析的網路埠指標。 如果 NetworkString 參數中沒有網路埠,則會傳回零值的指標。
[out, optional] PrefixLength
成功時,如果此參數中未傳遞 Null 指標,函式就會傳回剖析前置詞長度的指標。 如果 NetworkString 參數中沒有前置詞,則會傳回 -1 值的指標。
傳回值
如果函式成功,傳回值會ERROR_SUCCESS。
如果函式失敗,傳回值就是下列其中一個錯誤碼。
傳回碼 |
描述 |
- ERROR_INSUFFICIENT_BUFFER
|
傳遞至函式的緩衝區太小。 如果 AddressInfo 參數指向的緩衝區太小而無法保存剖析的網路位址,就會傳回此錯誤。
|
- ERROR_INVALID_PARAMETER
|
不正確參數已傳遞至 函式。 如果在NetworkString參數中傳遞Null指標,就會傳回此錯誤 |
ParseNetworkString函式會剖析在 NetworkString參數中傳遞的輸入網路字串,並檢查它是否為Types引數中所指定之其中一個字串類型的合法標記法。 如果字串符合類型及其規格,則函式會成功,而且可以在這些參數不是Null指標時,選擇性地將剖析的結果傳回給選擇性AddressInfo、PortNumber和PrefixLength參數中的呼叫端。
ParseNetworkString函式可以剖析 IPv4 或 IPv6 位址、服務和網路的標記法,以及使用 DNS 名稱命名的網際網路位址和服務。
AddressInfo參數所指向的NET_ADDRESS_INFO結構。 SOCKADDR_IN和 SOCKADDR 結構定義于Winsock2.h標頭檔自動包含的Ws2def.h標頭檔中。 SOCKADDR_IN6 結構定義于 Ws2ipdef.h 標頭檔中, Ws2tcpip.h 標頭檔會自動包含此標頭檔。 若要使用ParseNetworkString函式和NET_ADDRESS_INFO結構,必須在Iphlpapi.h標頭檔之前包含Winsock2.h和Ws2tcpip.h標頭檔。
需求
|
|
最低支援的用戶端 |
Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows Server 2008 [僅限傳統型應用程式] |
目標平台 |
Windows |
標頭 |
iphlpapi.h |
程式庫 |
Iphlpapi.lib |
Dll |
Iphlpapi.dll |
另請參閱
NET_ADDRESS_FORMAT
NET_ADDRESS_INFO
SOCKADDR
SOCKADDR_IN
SOCKADDR_IN6