Fonction InetPtonW (ws2tcpip.h)
La fonction InetPton convertit une adresse réseau Internet IPv4 ou IPv6 dans son formulaire de présentation de texte standard en une forme binaire numérique. La version ANSI de cette fonction est inet_pton.
Syntaxe
INT WSAAPI InetPtonW(
[in] INT Family,
[in] PCWSTR pszAddrString,
[out] PVOID pAddrBuf
);
Paramètres
[in] Family
Famille d’adresses.
Les valeurs possibles pour la famille d’adresses sont définies dans le fichier d’en-tête Ws2def.h . Notez que le fichier d’en-tête Ws2def.h est automatiquement inclus dans Winsock2.h et ne doit jamais être utilisé directement. Notez que les valeurs de la famille d’adresses AF_ et des constantes de famille de protocole PF_ sont identiques (par exemple , AF_INET et PF_INET), de sorte que l’une ou l’autre constante peut être utilisée.
Les valeurs actuellement prises en charge sont AF_INET et AF_INET6.
Valeur | Signification |
---|---|
|
Famille d’adresses IPv4 (Internet Protocol version 4). Lorsque ce paramètre est spécifié, le paramètre pszAddrString doit pointer vers une représentation textuelle d’une adresse IPv4 et le paramètre pAddrBuf retourne un pointeur vers une structure IN_ADDR qui représente l’adresse IPv4. |
|
Famille d’adresses IPv6 (Internet Protocol version 6). Lorsque ce paramètre est spécifié, le paramètre pszAddrString doit pointer vers une représentation textuelle d’une adresse IPv6 et le paramètre pAddrBuf retourne un pointeur vers une structure IN6_ADDR qui représente l’adresse IPv6. |
[in] pszAddrString
Pointeur vers la chaîne terminée par NULL qui contient la représentation textuelle de l’adresse IP à convertir en forme binaire numérique.
Lorsque le paramètre Family est AF_INET, le paramètre pszAddrString doit pointer vers une représentation textuelle d’une adresse IPv4 en notation décimale en pointillés standard.
Lorsque le paramètre Family est AF_INET6, le paramètre pszAddrString doit pointer vers une représentation textuelle d’une adresse IPv6 en notation standard.
[out] pAddrBuf
Pointeur vers une mémoire tampon dans laquelle stocker la représentation binaire numérique de l’adresse IP. L’adresse IP est retournée dans l’ordre des octets réseau.
Lorsque le paramètre Family est AF_INET, cette mémoire tampon doit être suffisamment grande pour contenir une structure IN_ADDR .
Lorsque le paramètre Family est AF_INET6, cette mémoire tampon doit être suffisamment grande pour contenir une structure IN6_ADDR .
Valeur retournée
Si aucune erreur ne se produit, la fonction InetPton retourne la valeur 1 et la mémoire tampon pointée par le paramètre pAddrBuf contient l’adresse IP numérique binaire dans l’ordre d’octet réseau.
La fonction InetPton retourne la valeur 0 si le paramètre pAddrBuf pointe vers une chaîne qui n’est pas une chaîne décimale en pointillés IPv4 valide ou une chaîne d’adresse IPv6 valide. Sinon, une valeur de -1 est retournée et un code d’erreur spécifique peut être récupéré en appelant le
WSAGetLastError pour obtenir des informations d’erreur étendues.
Si la fonction présente une erreur, le code d’erreur étendu retourné par WSAGetLastError peut être l’une des valeurs suivantes.
Code d'erreur | Signification |
---|---|
La famille d’adresses spécifiée dans le paramètre Family n’est pas prise en charge. Cette erreur est retournée si le paramètre Family spécifié n’a pas été AF_INET ou AF_INET6. | |
Les paramètres pszAddrString ou pAddrBuf ont la valeur NULL ou ne font pas partie de l’espace d’adressage utilisateur. |
Remarques
La fonction InetPton est prise en charge sur Windows Vista et versions ultérieures.
La fonction InetPton fournit une conversion indépendante du protocole d’une adresse réseau Internet dans son formulaire de présentation de texte standard en une forme binaire numérique. La fonction InetPton prend une représentation textuelle d’une adresse Internet pointée par le paramètre pszAddrString et retourne un pointeur vers l’adresse IP binaire numérique dans le paramètre pAddrBuf . Alors que la fonction inet_addr fonctionne uniquement avec des chaînes d’adresse IPv4, la fonction InetPton fonctionne avec les chaînes d’adresse IPv4 ou IPv6.
La version ANSI de cette fonction est inet_pton comme défini dans RFC 2553. Pour plus d’informations, consultez RFC 2553 disponible sur le site web de l’IETF.
La fonction InetPton ne nécessite pas que la DLL Windows Sockets soit chargée pour effectuer la conversion d’une chaîne de texte qui représente une adresse IP en adresse IP binaire numérique.
Si le paramètre Family spécifié est AF_INET, le paramètre pszAddrString doit pointer une chaîne de texte d’une adresse IPv4 en notation décimale en pointillés comme dans « 192.168.16.0 », un exemple d’adresse IPv4 en notation décimale en pointillés.
Si le paramètre Family spécifié est AF_INET6, le paramètre pszAddrString doit pointer une chaîne de texte d’une adresse IPv6 au format Internet standard. La représentation sous forme de chaîne de base se compose de 8 nombres hexadécimaux séparés par des deux-points. Une chaîne de nombres zéro consécutifs peut être remplacée par un deux-points. Il ne peut y avoir qu’un seul signe deux-points dans la représentation sous forme de chaîne de l’adresse IPv6. Les 32 derniers bits peuvent être représentés en notation d’octets pointillés de style IPv4 si l’adresse est une adresse compatible IPv4.
Lorsque unicode ou _UNICODE est défini, InetPton est défini sur InetPtonW, la version Unicode de cette fonction. Le paramètre pszAddrString est défini sur le type de données PCWSTR .
Lorsque unicode ou _UNICODE n’est pas défini, InetPton est défini sur InetPtonA, la version ANSI de cette fonction. La version ANSI de cette fonction est toujours définie comme inet_pton. Le paramètre pszAddrString est défini sur le type de données PCSTR .
La structure IN_ADDR est définie dans le fichier d’en-tête Inaddr.h .
La structure IN6_ADDR est définie dans le fichier d’en-tête In6addr.h .
Sur Windows Vista et versions ultérieures, les fonctions RtlIpv4StringToAddress et RtlIpv4StringToAddressEx peuvent être utilisées pour convertir une représentation textuelle d’une adresse IPv4 en notation décimale en pointillés standard Internet en adresse binaire numérique représentée sous forme de structure IN_ADDR . Sur Windows Vista et versions ultérieures, les fonctions RtlIpv6StringToAddress et RtlIpv6StringToAddressEx peuvent être utilisées pour convertir une représentation sous forme de chaîne d’une adresse IPv6 en adresse IPv6 binaire numérique représentée sous forme de structure IN6_ADDR . La fonction RtlIpv6StringToAddressEx est plus flexible, car elle convertit également une représentation sous forme de chaîne d’une adresse IPv6 qui peut inclure un ID d’étendue et un port en notation standard en une forme binaire numérique.
Windows 8.1 et Windows Server 2012 R2 : la fonction InetPtonW est prise en charge pour les applications du Windows Store sur Windows 8.1, Windows Server 2012 R2 et versions ultérieures.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8.1, Windows Vista [applications de bureau | Applications UWP] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau | applications UWP] |
Plateforme cible | Windows |
En-tête | ws2tcpip.h |
Bibliothèque | Ws2_32.lib |
DLL | Ws2_32.dll |