Partager via


Fonction ParseNetworkString (iphlpapi.h)

La fonction ParseNetworkString analyse la chaîne de réseau d’entrée et vérifie s’il s’agit d’une représentation légale du type de chaîne de réseau IP spécifié. Si la chaîne correspond à un type et à sa spécification, la fonction peut éventuellement retourner le résultat analysé.

Syntaxe

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
);

Paramètres

[in] NetworkString

Pointeur vers la chaîne réseau terminée par NULL à analyser.

[in] Types

Type de chaîne réseau IP à analyser. Ce paramètre se compose de l’un des types de chaînes réseau tels que définis dans le fichier d’en-tête Iphlpapi.h .

Valeur Signification
NET_STRING_IPV4_ADDRESS
0x00000001
Le paramètre NetworkString pointe vers une adresse IPv4 à l’aide de la notation décimale en pointillés standard d’Internet. Un port réseau ou un préfixe ne doit pas être présent dans la chaîne réseau.

Voici un exemple de chaîne réseau :

192.168.100.10

NET_STRING_IPV4_SERVICE
0x00000002
Le paramètre NetworkString pointe vers un service IPv4 à l’aide de la notation décimale en pointillés standard d’Internet. Un port réseau est requis dans le cadre de la chaîne réseau. Un préfixe ne doit pas être présent dans la chaîne réseau.

Voici un exemple de chaîne réseau :

192.168.100.10:80

NET_STRING_IPV4_NETWORK
0x00000004
Le paramètre NetworkString pointe vers un réseau IPv4 à l’aide de la notation décimale en pointillés standard Internet. Un préfixe réseau qui utilise la notation CIDR (Classless Inter-Domain Routing) est requis dans le cadre de la chaîne réseau. Un port réseau ne doit pas être présent dans la chaîne réseau.

Voici un exemple de chaîne réseau :

192.168.100/24

NET_STRING_IPV6_ADDRESS
0x00000008
Le paramètre NetworkString pointe vers une adresse IPv6 à l’aide de l’encodage hexadécimal standard Internet. Un ID d’étendue IPv6 peut être présent dans la chaîne réseau. Un port réseau ou un préfixe ne doit pas être présent dans la chaîne réseau.

Voici un exemple de chaîne réseau :

21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A%2

NET_STRING_IPV6_ADDRESS_NO_SCOPE
0x00000008
Le paramètre NetworkString pointe vers une adresse IPv6 à l’aide de l’encodage hexadécimal standard Internet. Un ID d’étendue IPv6 ne doit pas être présent dans la chaîne réseau. Un port réseau ou un préfixe ne doit pas être présent dans la chaîne réseau.

Voici un exemple de chaîne réseau :

21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A

NET_STRING_IPV6_SERVICE
0x00000020
Le paramètre NetworkString pointe vers un service IPv6 à l’aide de l’encodage hexadécimal standard Internet. Un port réseau est requis dans le cadre de la chaîne réseau. Un ID d’étendue IPv6 peut être présent dans la chaîne réseau. Un préfixe ne doit pas être présent dans la chaîne réseau.

Voici un exemple de chaîne réseau avec un ID d’étendue :

[21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A%2]:8080

NET_STRING_IPV6_SERVICE_NO_SCOPE
0x00000040
Le paramètre NetworkString pointe vers un service IPv6 à l’aide de l’encodage hexadécimal standard Internet. Un port réseau est requis dans le cadre de la chaîne réseau. Un ID d’étendue IPv6 ne doit pas être présent dans la chaîne réseau. Un préfixe ne doit pas être présent dans la chaîne réseau.

Voici un exemple de chaîne réseau :

21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A:8080

NET_STRING_IPV6_NETWORK
0x00000080
Le paramètre NetworkString pointe vers un réseau IPv6 à l’aide de l’encodage hexadécimal standard Internet. Un préfixe réseau en notation CIDR est requis dans le cadre de la chaîne réseau. Un ID de port réseau ou d’étendue ne doit pas être présent dans la chaîne réseau.

Voici un exemple de chaîne réseau :

21DA:D3::/48

NET_STRING_NAMED_ADDRESS
0x00000100
Le paramètre NetworkString pointe vers une adresse Internet à l’aide d’un nom DNS (Domain Name System). Un port réseau ou un préfixe ne doit pas être présent dans la chaîne réseau.

Voici un exemple de chaîne réseau :

www.microsoft.com

NET_STRING_NAMED_SERVICE
0x00000200
Le paramètre NetworkString pointe vers un service Internet à l’aide d’un nom DNS. Un port réseau doit être présent dans la chaîne réseau.

Voici un exemple de chaîne réseau :

www.microsoft.com:80

NET_STRING_IP_ADDRESS
0x00000009
Le paramètre NetworkString pointe vers une adresse IPv4 à l’aide de la notation décimale en pointillés standard internet ou une adresse IPv6 utilisant l’encodage hexadécimal standard Internet. Un ID d’étendue IPv6 peut être présent dans la chaîne réseau. Un port réseau ou un préfixe ne doit pas être présent dans la chaîne réseau.

Ce type correspond aux types NET_STRING_IPV4_ADDRESS ou NET_STRING_IPV6_ADDRESS .

NET_STRING_IP_ADDRESS_NO_SCOPE
0x00000011
Le paramètre NetworkString pointe vers une adresse IPv4 à l’aide de la notation décimale en pointillés standard internet ou une adresse IPv6 utilisant l’encodage hexadécimal standard Internet. Un ID d’étendue IPv6 ne doit pas être présent dans la chaîne réseau. Un port réseau ou un préfixe ne doit pas être présent dans la chaîne réseau.

Ce type correspond aux types NET_STRING_IPV4_ADDRESS ou NET_STRING_IPV6_ADDRESS_NO_SCOPE .

NET_STRING_IP_SERVICE
0x00000022
Le paramètre NetworkString pointe vers un service IPv4 ou un service IPv6. Un port réseau est requis dans le cadre de la chaîne réseau. Un ID d’étendue IPv6 peut être présent dans la chaîne réseau. Un préfixe ne doit pas être présent dans la chaîne réseau.

Ce type correspond aux types NET_STRING_IPV4_SERVICE ou NET_STRING_IPV6_SERVICE .

NET_STRING_IP_SERVICE_NO_SCOPE
0x00000042
Le paramètre NetworkString pointe vers un service IPv4 ou un service IPv6. Un port réseau est requis dans le cadre de la chaîne réseau. Un ID d’étendue IPv6 ne doit pas être présent dans la chaîne réseau. Un préfixe ne doit pas être présent dans la chaîne réseau.

Ce type correspond aux types NET_STRING_IPV4_SERVICE ou NET_STRING_IPV6_SERVICE_NO_SCOPE .

NET_STRING_IP_NETWORK
0x00000084
Le paramètre NetworkString pointe vers un réseau IPv4 ou IPv6. Un préfixe réseau en notation CIDR est requis dans le cadre de la chaîne réseau. Un ID de port ou d’étendue réseau ne doit pas être présent dans le réseau.

Ce type correspond aux types NET_STRING_IPV4_NETWORK ou NET_STRING_IPV6_NETWORK .

NET_STRING_ANY_ADDRESS
0x00000209
Le paramètre NetworkString pointe vers une adresse IPv4 en notation décimale standard Internet, une adresse IPv6 dans l’encodage hexadécimal standard Internet ou un nom DNS. Un ID d’étendue IPv6 peut être présent dans la chaîne réseau d’une adresse IPv6. Un port réseau ou un préfixe ne doit pas être présent dans la chaîne réseau.

Ce type correspond aux types NET_STRING_NAMED_ADDRESS ou NET_STRING_IP_ADDRESS .

NET_STRING_ANY_ADDRESS_NO_SCOPE
0x00000211
Le paramètre NetworkString pointe vers une adresse IPv4 en notation décimale standard Internet, une adresse IPv6 dans l’encodage hexadécimal standard Internet ou un nom DNS. Un ID d’étendue IPv6 ne doit pas être présent dans la chaîne réseau d’une adresse IPv6. Un port réseau ou un préfixe ne doit pas être présent dans la chaîne réseau.

Ce type correspond aux types NET_STRING_NAMED_ADDRESS ou NET_STRING_IP_ADDRESS_NO_SCOPE .

NET_STRING_ANY_SERVICE
0x00000222
Le paramètre NetworkString pointe vers un service IPv4 ou un service IPv6 à l’aide de la notation d’adresse IP ou d’un nom DNS. Un port réseau est requis dans le cadre de la chaîne réseau. Un ID d’étendue IPv6 peut être présent dans la chaîne réseau. Un préfixe ne doit pas être présent dans la chaîne réseau.

Ce type correspond aux types NET_STRING_NAMED_SERVICE ou NET_STRING_IP_SERVICE .

NET_STRING_ANY_SERVICE_NO_SCOPE
0x00000242
Le paramètre NetworkString pointe vers un service IPv4 ou un service IPv6 à l’aide de la notation d’adresse IP ou d’un nom DNS. Un port réseau est requis dans le cadre de la chaîne réseau. Un ID d’étendue IPv6 ne doit pas être présent dans la chaîne réseau. Un préfixe ne doit pas être présent dans la chaîne réseau.

Ce type correspond aux types NET_STRING_NAMED_SERVICE ou NET_STRING_IP_SERVICE_NO_SCOPE .

[out, optional] AddressInfo

En cas de réussite, la fonction retourne un pointeur vers une structure de NET_ADDRESS_INFO qui contient les informations d’adresse IP analysées si aucun pointeur NULL n’a été passé dans ce paramètre.

[out, optional] PortNumber

En cas de réussite, la fonction retourne un pointeur vers le port réseau analysé dans l’ordre de l’hôte si aucun pointeur NULL n’a été passé dans ce paramètre. Si aucun port réseau n’était présent dans le paramètre NetworkString , un pointeur vers une valeur zéro est retourné.

[out, optional] PrefixLength

En cas de réussite, la fonction retourne un pointeur vers la longueur de préfixe analysée si aucun pointeur NULL n’a été passé dans ce paramètre. Si aucun préfixe n’était présent dans le paramètre NetworkString , un pointeur vers une valeur de -1 est retourné.

Valeur retournée

Si la fonction réussit, la valeur de retour est ERROR_SUCCESS.

Si la fonction échoue, la valeur de retour est l’un des codes d’erreur suivants.

Code de retour Description
ERROR_INSUFFICIENT_BUFFER
La mémoire tampon passée à la fonction est trop petite. Cette erreur est retournée si la mémoire tampon pointée par le paramètre AddressInfo est trop petite pour contenir l’adresse réseau analysée.
ERROR_INVALID_PARAMETER
Un paramètre non valide a été transmis à la fonction. Cette erreur est retournée si un pointeur NULL est passé dans le paramètre NetworkString

Notes

La fonction ParseNetworkString analyse la chaîne de réseau d’entrée passée dans le paramètre NetworkString et vérifie s’il s’agit d’une représentation légale de l’un des types de chaînes spécifiés dans l’argument Types . Si la chaîne correspond à un type et à sa spécification, la fonction réussit et peut éventuellement retourner le résultat analysé à l’appelant dans les paramètres facultatifs AddressInfo, PortNumber et PrefixLength lorsque ces paramètres ne sont pas des pointeurs NULL .

La fonction ParseNetworkString peut analyser des représentations d’adresses, de services et de réseaux IPv4 ou IPv6, ainsi que d’adresses Internet et de services nommés à l’aide de noms DNS.

Structure NET_ADDRESS_INFO pointée vers le paramètre AddressInfo . Les structures SOCKADDR_IN et SOCKADDR sont définies dans le fichier d’en-tête Ws2def.h qui est automatiquement inclus par le fichier d’en-tête Winsock2.h . La structure SOCKADDR_IN6 est définie dans le fichier d’en-tête Ws2ipdef.h qui est automatiquement inclus par le fichier d’en-tête Ws2tcpip.h . Pour utiliser la fonction ParseNetworkString et la structure NET_ADDRESS_INFO , les fichiers d’en-tête Winsock2.h et Ws2tcpip.h doivent être inclus avant le fichier d’en-tête Iphlpapi.h .

Configuration requise

   
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête iphlpapi.h
Bibliothèque Iphlpapi.lib
DLL Iphlpapi.dll

Voir aussi

NET_ADDRESS_FORMAT

NET_ADDRESS_INFO

SOCKADDR

SOCKADDR_IN

SOCKADDR_IN6