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
AF_INET
2
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.
AF_INET6
23
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
WSAEAFNOSUPPORT
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.
WSAEFAULT
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

Voir aussi

IN6_ADDR

IN_ADDR

InetNtop

RtlIpv4AddressToString

RtlIpv4AddressToStringEx

RtlIpv4StringToAddress

RtlIpv4StringToAddressEx

RtlIpv6AddressToString

RtlIpv6AddressToStringEx

RtlIpv6StringToAddress

RtlIpv6StringToAddressEx

inet_addr

inet_ntoa