Compartir a través de


Función InetPtonW (ws2tcpip.h)

La función InetPton convierte una dirección de red de Internet IPv4 o IPv6 en su formulario de presentación de texto estándar en su formato binario numérico. La versión ANSI de esta función se inet_pton.

Sintaxis

INT WSAAPI InetPtonW(
  [in]  INT    Family,
  [in]  PCWSTR pszAddrString,
  [out] PVOID  pAddrBuf
);

Parámetros

[in] Family

Familia de direcciones.

Los valores posibles para la familia de direcciones se definen en el archivo de encabezado Ws2def.h . Tenga en cuenta que el archivo de encabezado Ws2def.h se incluye automáticamente en Winsock2.h y nunca se debe usar directamente. Tenga en cuenta que los valores de la familia de direcciones AF_ y las constantes de familia de protocolos PF_ son idénticos (por ejemplo, AF_INET y PF_INET), por lo que se puede usar cualquier constante.

Los valores admitidos actualmente son AF_INET y AF_INET6.

Valor Significado
AF_INET
2
Familia de direcciones del Protocolo de Internet versión 4 (IPv4). Cuando se especifica este parámetro, el parámetro pszAddrString debe apuntar a una representación de texto de una dirección IPv4 y el parámetro pAddrBuf devuelve un puntero a una estructura IN_ADDR que representa la dirección IPv4.
AF_INET6
23
Familia de direcciones del Protocolo de Internet versión 6 (IPv6). Cuando se especifica este parámetro, el parámetro pszAddrString debe apuntar a una representación de texto de una dirección IPv6 y el parámetro pAddrBuf devuelve un puntero a una estructura IN6_ADDR que representa la dirección IPv6.

[in] pszAddrString

Puntero a la cadena terminada en NULL que contiene la representación de texto de la dirección IP que se va a convertir en formato binario numérico.

Cuando se AF_INET el parámetro Family, el parámetro pszAddrString debe apuntar a una representación de texto de una dirección IPv4 en notación decimal con puntos estándar.

Cuando se AF_INET6 el parámetro Family, el parámetro pszAddrString debe apuntar a una representación de texto de una dirección IPv6 en notación estándar.

[out] pAddrBuf

Puntero a un búfer en el que se va a almacenar la representación binaria numérica de la dirección IP. La dirección IP se devuelve en orden de bytes de red.

Cuando se AF_INET el parámetro Family, este búfer debe ser lo suficientemente grande como para contener una estructura de IN_ADDR.

Cuando se AF_INET6 el parámetro Family, este búfer debe ser lo suficientemente grande como para contener una estructura de IN6_ADDR.

Valor devuelto

Si no se produce ningún error, la función InetPton devuelve un valor de 1 y el búfer al que apunta el parámetro pAddrBuf contiene la dirección IP numérica binaria en orden de bytes de red.

La función InetPton devuelve un valor de 0 si el parámetro pAddrBuf apunta a una cadena que no es una cadena IPv4 con puntos-decimal válida o una cadena de dirección IPv6 válida. De lo contrario, se devuelve un valor de -1 y se puede recuperar un código de error específico mediante una llamada a .
WSAGetLastError para obtener información de error extendida.

Si la función tiene un error, el código de error extendido devuelto por WSAGetLastError puede ser uno de los valores siguientes.

Código de error Significado
WSAEAFNOSUPPORT
No se admite la familia de direcciones especificada en el parámetro Family . Este error se devuelve si el parámetro Family especificado no se AF_INET o AF_INET6.
WSAEFAULT
Los parámetros pszAddrString o pAddrBuf son NULL o no forman parte del espacio de direcciones del usuario.

Comentarios

La función InetPton se admite en Windows Vista y versiones posteriores.

La función InetPton proporciona una conversión independiente del protocolo de una dirección de red de Internet en su formulario de presentación de texto estándar en su formato binario numérico. La función InetPton toma una representación de texto de una dirección de Internet a la que apunta el parámetro pszAddrString y devuelve un puntero a la dirección IP binaria numérica en el parámetro pAddrBuf . Aunque la función inet_addr solo funciona con cadenas de dirección IPv4, la función InetPton funciona con cadenas de dirección IPv4 o IPv6.

La versión ANSI de esta función se inet_pton tal y como se define en RFC 2553. Para obtener más información, consulte RFC 2553 disponible en el sitio web de IETF.

La función InetPton no requiere que el archivo DLL de Windows Sockets se cargue para realizar la conversión de una cadena de texto que representa una dirección IP a una dirección IP binaria numérica.

Si el parámetro Family especificado es AF_INET, el parámetro pszAddrString debe apuntar una cadena de texto de una dirección IPv4 en notación decimal con puntos como en "192.168.16.0", un ejemplo de una dirección IPv4 en notación decimal con puntos.

Si se AF_INET6 el parámetro Family especificado, el parámetro pszAddrString debe apuntar una cadena de texto de una dirección IPv6 en formato estándar de Internet. La representación de cadena básica consta de 8 números hexadecimales separados por dos puntos. Una cadena de números cero consecutivos se puede reemplazar por dos puntos. Solo puede haber un signo de dos puntos en la representación de cadena de la dirección IPv6. Los últimos 32 bits se pueden representar en notación dotted-octet de estilo IPv4 si la dirección es una dirección compatible con IPv4.

Cuando se define UNICODE o _UNICODE, InetPton se define en InetPtonW, la versión Unicode de esta función. El parámetro pszAddrString se define en el tipo de datos PCWSTR .

Cuando no se define UNICODE o _UNICODE, InetPton se define en InetPtonA, la versión ANSI de esta función. La versión ANSI de esta función siempre se define como inet_pton. El parámetro pszAddrString se define en el tipo de datos PCSTR .

La estructura IN_ADDR se define en el archivo de encabezado Inaddr.h .

La estructura IN6_ADDR se define en el archivo de encabezado In6addr.h .

En Windows Vista y versiones posteriores, las funciones RtlIpv4StringToAddress y RtlIpv4StringToAddressEx se pueden usar para convertir una representación de texto de una dirección IPv4 en notación decimal de puntos estándar de Internet en una dirección binaria numérica representada como una estructura IN_ADDR . En Windows Vista y versiones posteriores, las funciones RtlIpv6StringToAddress y RtlIpv6StringToAddressEx se pueden usar para convertir una representación de cadena de una dirección IPv6 en una dirección IPv6 binaria numérica representada como una estructura IN6_ADDR . La función RtlIpv6StringToAddressEx es más flexible, ya que también convierte una representación de cadena de una dirección IPv6 que puede incluir un identificador de ámbito y un puerto en notación estándar a un formulario binario numérico.

Windows 8.1 y Windows Server 2012 R2: la función InetPtonW es compatible con las aplicaciones de la Tienda Windows en Windows 8.1, Windows Server 2012 R2 y versiones posteriores.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8.1, Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado ws2tcpip.h
Library Ws2_32.lib
Archivo DLL Ws2_32.dll

Consulte también

IN6_ADDR

IN_ADDR

InetNtop

RtlIpv4AddressToString

RtlIpv4AddressToStringEx

RtlIpv4StringToAddress

RtlIpv4StringToAddressEx

RtlIpv6AddressToString

RtlIpv6AddressToStringEx

RtlIpv6StringToAddress

RtlIpv6StringToAddressEx

inet_addr

inet_ntoa