Die ParseNetworkString-Funktion analysiert die Eingabenetzwerkzeichenfolge und überprüft, ob es sich um eine rechtliche Darstellung des angegebenen IP-Netzwerkzeichenfolgentyps handelt. Wenn die Zeichenfolge einem Typ und seiner Spezifikation entspricht, kann die Funktion optional das analysierte Ergebnis zurückgeben.
Syntax
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
);
Parameter
[in] NetworkString
Ein Zeiger auf die zu analysierende NULL-beendete Netzwerkzeichenfolge.
[in] Types
Der Typ der zu analysierenden IP-Netzwerkzeichenfolge. Dieser Parameter besteht aus einem Netzwerkzeichenfolgentyp, der in der Headerdatei Iphlpapi.h definiert ist.
| Wert |
Bedeutung |
-
NET_STRING_IPV4_ADDRESS
- 0x00000001
|
Der NetworkString-Parameter verweist mit gepunkteter Dezimalschreibweise im Internetstandard auf eine IPv4-Adresse.
Ein Netzwerkport oder Präfix darf in der Netzwerkzeichenfolge nicht vorhanden sein.
Eine Beispiel-Netzwerkzeichenfolge ist die folgende:
192.168.100.10
|
-
NET_STRING_IPV4_SERVICE
- 0x00000002
|
Der NetworkString-Parameter zeigt auf einen IPv4-Dienst mit internetstandardgepunkteter Dezimalschreibweise.
Ein Netzwerkport ist als Teil der Netzwerkzeichenfolge erforderlich. In der Netzwerkzeichenfolge darf kein Präfix vorhanden sein.
Eine Beispiel-Netzwerkzeichenfolge ist die folgende:
192.168.100.10:80
|
-
NET_STRING_IPV4_NETWORK
- 0x00000004
|
Der NetworkString-Parameter zeigt auf ein IPv4-Netzwerk mit internetstandardgepunkteter Dezimalschreibweise.
Ein Netzwerkpräfix, das die CIDR-Notation (Classless Inter-Domain Routing) verwendet, ist als Teil der Netzwerkzeichenfolge erforderlich. In der Netzwerkzeichenfolge darf kein Netzwerkport vorhanden sein.
Eine Beispiel-Netzwerkzeichenfolge ist die folgende:
192.168.100/24
|
-
NET_STRING_IPV6_ADDRESS
- 0x00000008
|
Der NetworkString-Parameter verweist auf eine IPv6-Adresse mit hexadezimaler Codierung im Internetstandard.
Möglicherweise ist in der Netzwerkzeichenfolge eine IPv6-Bereichs-ID vorhanden. Ein Netzwerkport oder Präfix darf in der Netzwerkzeichenfolge nicht vorhanden sein.
Eine Beispiel-Netzwerkzeichenfolge ist die folgende:
21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A%2
|
-
NET_STRING_IPV6_ADDRESS_NO_SCOPE
- 0x00000008
|
Der NetworkString-Parameter verweist auf eine IPv6-Adresse mit hexadezimaler Codierung im Internetstandard. In der Netzwerkzeichenfolge darf keine IPv6-Bereichs-ID vorhanden sein. Ein Netzwerkport oder Präfix darf in der Netzwerkzeichenfolge nicht vorhanden sein.
Eine Beispiel-Netzwerkzeichenfolge ist die folgende:
21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A
|
-
NET_STRING_IPV6_SERVICE
- 0x00000020
|
Der NetworkString-Parameter verweist auf einen IPv6-Dienst mithilfe der Hexadezimalcodierung des Internetstandards.
Ein Netzwerkport ist als Teil der Netzwerkzeichenfolge erforderlich. Möglicherweise ist in der Netzwerkzeichenfolge eine IPv6-Bereichs-ID vorhanden. In der Netzwerkzeichenfolge darf kein Präfix vorhanden sein.
Eine Beispielnetzwerkzeichenfolge mit einer Bereichs-ID lautet wie folgt:
[21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A%2]:8080
|
-
NET_STRING_IPV6_SERVICE_NO_SCOPE
- 0x00000040
|
Der NetworkString-Parameter verweist auf einen IPv6-Dienst mithilfe der Hexadezimalcodierung des Internetstandards.
Ein Netzwerkport ist als Teil der Netzwerkzeichenfolge erforderlich. In der Netzwerkzeichenfolge darf keine IPv6-Bereichs-ID vorhanden sein. In der Netzwerkzeichenfolge darf kein Präfix vorhanden sein.
Eine Beispiel-Netzwerkzeichenfolge ist die folgende:
21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A:8080
|
-
NET_STRING_IPV6_NETWORK
- 0x00000080
|
Der NetworkString-Parameter verweist mit hexadezimaler Codierung im Internetstandard auf ein IPv6-Netzwerk.
Ein Netzwerkpräfix in DER CIDR-Notation ist als Teil der Netzwerkzeichenfolge erforderlich. In der Netzwerkzeichenfolge darf keine Netzwerkport- oder Bereichs-ID vorhanden sein.
Eine Beispiel-Netzwerkzeichenfolge ist die folgende:
21DA:D3::/48
|
-
NET_STRING_NAMED_ADDRESS
- 0x00000100
|
Der NetworkString-Parameter verweist mit einem DNS-Namen (Domain Name System) auf eine Internetadresse.
Ein Netzwerkport oder Präfix darf in der Netzwerkzeichenfolge nicht vorhanden sein.
Eine Beispiel-Netzwerkzeichenfolge ist die folgende:
www.microsoft.com
|
-
NET_STRING_NAMED_SERVICE
- 0x00000200
|
Der NetworkString-Parameter verweist mit einem DNS-Namen auf einen Internetdienst.
In der Netzwerkzeichenfolge muss ein Netzwerkport vorhanden sein.
Eine Beispiel-Netzwerkzeichenfolge ist die folgende:
www.microsoft.com:80
|
-
NET_STRING_IP_ADDRESS
- 0x00000009
|
Der NetworkString-Parameter verweist auf eine IPv4-Adresse mit gepunkteter Dezimalnotation im Internetstandard oder auf eine IPv6-Adresse, die die Hexadezimalcodierung des Internetstandards verwendet.
Möglicherweise ist in der Netzwerkzeichenfolge eine IPv6-Bereichs-ID vorhanden. Ein Netzwerkport oder Präfix darf in der Netzwerkzeichenfolge nicht vorhanden sein.
Dieser Typ stimmt entweder mit dem NET_STRING_IPV4_ADDRESS - oder NET_STRING_IPV6_ADDRESS-Typen überein.
|
-
NET_STRING_IP_ADDRESS_NO_SCOPE
- 0x00000011
|
Der NetworkString-Parameter verweist auf eine IPv4-Adresse mit gepunkteter Dezimalnotation im Internetstandard oder auf eine IPv6-Adresse mit Hexadezimalcodierung im Internetstandard.
In der Netzwerkzeichenfolge darf keine IPv6-Bereichs-ID vorhanden sein. Ein Netzwerkport oder Präfix darf in der Netzwerkzeichenfolge nicht vorhanden sein.
Dieser Typ stimmt entweder mit dem NET_STRING_IPV4_ADDRESS - oder NET_STRING_IPV6_ADDRESS_NO_SCOPE-Typen überein.
|
-
NET_STRING_IP_SERVICE
- 0x00000022
|
Der NetworkString-Parameter verweist auf einen IPv4- oder IPv6-Dienst.
Ein Netzwerkport ist als Teil der Netzwerkzeichenfolge erforderlich. Möglicherweise ist in der Netzwerkzeichenfolge eine IPv6-Bereichs-ID vorhanden. In der Netzwerkzeichenfolge darf kein Präfix vorhanden sein.
Dieser Typ stimmt entweder mit den NET_STRING_IPV4_SERVICE - oder NET_STRING_IPV6_SERVICE-Typen überein.
|
-
NET_STRING_IP_SERVICE_NO_SCOPE
- 0x00000042
|
Der NetworkString-Parameter verweist auf einen IPv4- oder IPv6-Dienst.
Ein Netzwerkport ist als Teil der Netzwerkzeichenfolge erforderlich. In der Netzwerkzeichenfolge darf keine IPv6-Bereichs-ID vorhanden sein. In der Netzwerkzeichenfolge darf kein Präfix vorhanden sein.
Dieser Typ stimmt entweder mit dem NET_STRING_IPV4_SERVICE - oder NET_STRING_IPV6_SERVICE_NO_SCOPE-Typen überein.
|
-
NET_STRING_IP_NETWORK
- 0x00000084
|
Der NetworkString-Parameter verweist auf ein IPv4- oder IPv6-Netzwerk.
Ein Netzwerkpräfix in DER CIDR-Notation ist als Teil der Netzwerkzeichenfolge erforderlich. Eine Netzwerkport- oder Bereichs-ID darf nicht im Netzwerk vorhanden sein.
Dieser Typ stimmt entweder mit dem NET_STRING_IPV4_NETWORK - oder NET_STRING_IPV6_NETWORK-Typ überein.
|
-
NET_STRING_ANY_ADDRESS
- 0x00000209
|
Der NetworkString-Parameter zeigt auf eine IPv4-Adresse in internetstandardgepunkteter Dezimalschreibweise, eine IPv6-Adresse in der Hexadezimalcodierung des Internetstandards oder einen DNS-Namen.
In der Netzwerkzeichenfolge für eine IPv6-Adresse kann eine IPv6-Bereichs-ID vorhanden sein. Ein Netzwerkport oder Präfix darf in der Netzwerkzeichenfolge nicht vorhanden sein.
Dieser Typ stimmt entweder mit dem NET_STRING_NAMED_ADDRESS - oder NET_STRING_IP_ADDRESS-Typen überein.
|
-
NET_STRING_ANY_ADDRESS_NO_SCOPE
- 0x00000211
|
Der NetworkString-Parameter zeigt auf eine IPv4-Adresse in internetstandardgepunkteter Dezimalschreibweise, eine IPv6-Adresse in der Hexadezimalcodierung des Internetstandards oder einen DNS-Namen.
Eine IPv6-Bereichs-ID darf in der Netzwerkzeichenfolge für eine IPv6-Adresse nicht vorhanden sein. Ein Netzwerkport oder Präfix darf in der Netzwerkzeichenfolge nicht vorhanden sein.
Dieser Typ stimmt entweder mit dem NET_STRING_NAMED_ADDRESS - oder NET_STRING_IP_ADDRESS_NO_SCOPE-Typen überein.
|
-
NET_STRING_ANY_SERVICE
- 0x00000222
|
Der NetworkString-Parameter verweist mithilfe der IP-Adressnotation oder eines DNS-Namens auf einen IPv4- oder IPv6-Dienst.
Ein Netzwerkport ist als Teil der Netzwerkzeichenfolge erforderlich. Möglicherweise ist in der Netzwerkzeichenfolge eine IPv6-Bereichs-ID vorhanden. In der Netzwerkzeichenfolge darf kein Präfix vorhanden sein.
Dieser Typ stimmt entweder mit dem NET_STRING_NAMED_SERVICE - oder NET_STRING_IP_SERVICE-Typen überein.
|
-
NET_STRING_ANY_SERVICE_NO_SCOPE
- 0x00000242
|
Der NetworkString-Parameter verweist mithilfe der IP-Adressnotation oder eines DNS-Namens auf einen IPv4- oder IPv6-Dienst.
Ein Netzwerkport ist als Teil der Netzwerkzeichenfolge erforderlich. In der Netzwerkzeichenfolge darf keine IPv6-Bereichs-ID vorhanden sein. In der Netzwerkzeichenfolge darf kein Präfix vorhanden sein.
Dieser Typ entspricht entweder dem NET_STRING_NAMED_SERVICE - oder NET_STRING_IP_SERVICE_NO_SCOPE-Typ .
|
[out, optional] AddressInfo
Bei Erfolg gibt die Funktion einen Zeiger auf eine NET_ADDRESS_INFO Struktur zurück, die die analysierten IP-Adressinformationen enthält, wenn in diesem Parameter kein NULL-Zeiger übergeben wurde.
[out, optional] PortNumber
Bei Erfolg gibt die Funktion einen Zeiger auf den analysierten Netzwerkport in Hostreihenfolge zurück, wenn in diesem Parameter kein NULL-Zeiger übergeben wurde. Wenn im NetworkString-Parameter kein Netzwerkport vorhanden war, wird ein Zeiger auf den Wert 0 zurückgegeben.
[out, optional] PrefixLength
Bei Erfolg gibt die Funktion einen Zeiger auf die analysierte Präfixlänge zurück, wenn in diesem Parameter kein NULL-Zeiger übergeben wurde. Wenn im NetworkString-Parameter kein Präfix vorhanden war, wird ein Zeiger auf den Wert -1 zurückgegeben.
Rückgabewert
Wenn die Funktion erfolgreich ist, wird der Rückgabewert ERROR_SUCCESS.
Wenn die Funktion fehlschlägt, ist der Rückgabewert einer der folgenden Fehlercodes.
| Rückgabecode |
Beschreibung |
-
ERROR_INSUFFICIENT_BUFFER
|
Der an die Funktion übergebene Puffer ist zu klein. Dieser Fehler wird zurückgegeben, wenn der Puffer, auf den der AddressInfo-Parameter verweist, zu klein ist, um die analysierte Netzwerkadresse zu speichern.
|
-
ERROR_INVALID_PARAMETER
|
Es wurde ein ungültiger Parameter an die Funktion übergeben. Dieser Fehler wird zurückgegeben, wenn ein NULL-Zeiger im NetworkString-Parameter übergeben wird. |
Die ParseNetworkString-Funktion analysiert die im NetworkString-Parameter übergebene Eingabenetzwerkzeichenfolge und überprüft, ob es sich um eine rechtliche Darstellung eines der Zeichenfolgentypen handelt, wie im Argument Types angegeben. Wenn die Zeichenfolge mit einem Typ und seiner Spezifikation übereinstimmt, ist die Funktion erfolgreich und kann das analysierte Ergebnis optional an den Aufrufer in den optionalen Parametern AddressInfo, PortNumber und PrefixLength zurückgeben, wenn diese Parameter keine NULL-Zeiger sind.
Die ParseNetworkString-Funktion kann Darstellungen von IPv4- oder IPv6-Adressen, Diensten und Netzwerken sowie benannten Internetadressen und Diensten mithilfe von DNS-Namen analysieren.
Die NET_ADDRESS_INFO Struktur, auf die der AddressInfo-Parameter verweist. Die SOCKADDR_IN- und SOCKADDR-Strukturen werden in der Headerdatei Ws2def.h definiert, die automatisch von der Winsock2.h-Headerdatei eingeschlossen wird. Die SOCKADDR_IN6-Struktur ist in der Headerdatei Ws2ipdef.h definiert, die automatisch von der Ws2tcpip.h-Headerdatei eingeschlossen wird. Um die ParseNetworkString-Funktion und die NET_ADDRESS_INFO-Struktur verwenden zu können, müssen die Headerdateien Winsock2.h und Ws2tcpip.h vor der Headerdatei Iphlpapi.h enthalten sein.
Anforderungen
| |
|
|
Unterstützte Mindestversion (Client) |
Windows Vista [nur Desktop-Apps] |
|
Unterstützte Mindestversion (Server) |
Windows Server 2008 [nur Desktop-Apps] |
|
Zielplattform |
Windows |
|
Kopfzeile |
iphlpapi.h |
|
Bibliothek |
Iphlpapi.lib |
|
DLL |
Iphlpapi.dll |
Weitere Informationen
NET_ADDRESS_FORMAT
NET_ADDRESS_INFO
SOCKADDR
SOCKADDR_IN
SOCKADDR_IN6