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