ParseNetworkString-Funktion (iphlpapi.h)

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.

Hinweise

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