función inet_ntop (ws2tcpip.h)

Consulte el ejemplo de inet_xtoy.

La función InetNtop convierte una dirección de red de Internet IPv4 o IPv6 en una cadena en formato estándar de Internet. La versión ANSI de esta función se inet_ntop.

Sintaxis

PCSTR WSAAPI inet_ntop(
  [in]  INT        Family,
  [in]  const VOID *pAddr,
  [out] PSTR       pStringBuf,
  [in]  size_t     StringBufSize
);

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, esta función devuelve una cadena de dirección IPv4.
AF_INET6
23
Familia de direcciones del Protocolo de Internet versión 6 (IPv6). Cuando se especifica este parámetro, esta función devuelve una cadena de dirección IPv6.

[in] pAddr

Puntero a la dirección IP del byte de red que se va a convertir en una cadena.

Cuando se AF_INET el parámetro Family, el parámetro pAddr debe apuntar a una estructura IN_ADDR con la dirección IPv4 que se va a convertir.

Cuando se AF_INET6 el parámetro Family, el parámetro pAddr debe apuntar a una estructura de IN6_ADDR con la dirección IPv6 que se va a convertir.

[out] pStringBuf

Puntero a un búfer en el que se va a almacenar la representación de cadena terminada en NULL de la dirección IP.

Para una dirección IPv4, este búfer debe ser lo suficientemente grande como para contener al menos 16 caracteres.

Para una dirección IPv6, este búfer debe ser lo suficientemente grande como para contener al menos 46 caracteres.

[in] StringBufSize

En la entrada, la longitud, en caracteres, del búfer al que apunta el parámetro pStringBuf .

Valor devuelto

Si no se produce ningún error, la función InetNtop devuelve un puntero a un búfer que contiene la representación de cadena de la dirección IP en formato estándar.

De lo contrario , se devuelve un valor NULL y se puede recuperar un código de error específico mediante una llamada a .
WSAGetLastError para obtener información de error extendida.

Si se produce un error en la función, 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.
ERROR_INVALID_PARAMETER
Se pasó un parámetro no válido a la función. Este error se devuelve si se pasa un puntero NULL en el parámetro pStringBuf o StringBufSize es cero. Este error también se devuelve si la longitud del búfer a la que apunta el parámetro pStringBuf no es lo suficientemente grande como para recibir la representación de cadena de la dirección IP.

Comentarios

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

La función InetNtop proporciona una traducción de dirección a cadena independiente del protocolo. La función InetNtop toma una estructura de direcciones de Internet especificada por el parámetro pAddr y devuelve una cadena terminada en NULL que representa la dirección IP. Aunque la función inet_ntoa solo funciona con direcciones IPv4, la función InetNtop funciona con direcciones IPv4 o IPv6.

La versión ANSI de esta función se inet_ntop 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 InetNtop no requiere que el archivo DLL de Windows Sockets se cargue para realizar la conversión de dirección IP a cadena.

Si se AF_INET el parámetro Family especificado, el parámetro pAddr debe apuntar a una estructura de IN_ADDR con la dirección IPv4 que se va a convertir. La cadena de dirección devuelta en el búfer a la que apunta el parámetro pStringBuf está en notación con puntos decimales 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 pAddr debe apuntar a una estructura de IN6_ADDR con la dirección IPv6 que se va a convertir. La cadena de dirección devuelta en el búfer a la que apunta el parámetro pStringBuf está 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 reemplaza 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 representan en notación dotted-octet de estilo IPv4 si la dirección es una dirección compatible con IPv4.

Si la longitud del búfer a la que apunta el parámetro pStringBuf no es lo suficientemente grande como para recibir la representación de cadena de la dirección IP, InetNtop devuelve ERROR_INVALID_PARAMETER.

Cuando se define UNICODE o _UNICODE, InetNtop se define en InetNtopW, la versión Unicode de esta función. El parámetro pStringBuf se define en el tipo de datos PSTR .

Cuando no se define UNICODE o _UNICODE, InetNtop se define en InetNtopA, la versión ANSI de esta función. La versión ANSI de esta función siempre se define como inet_ntop. El parámetro pStringBuf se define en el tipo de datos PWSTR .

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 RtlIpv4AddressToString y RtlIpv4AddressToStringEx se pueden usar para convertir una dirección IPv4 representada como una estructura IN_ADDR en una representación de cadena de una dirección IPv4 en notación decimal de puntos de Internet estándar. En Windows Vista y versiones posteriores, las funciones RtlIpv6AddressToString y RtlIpv6AddressToStringEx se pueden usar para convertir una dirección IPv6 representada como una estructura de IN6_ADDR en una representación de cadena de una dirección IPv6. La función RtlIpv6AddressToStringEx es más flexible, ya que también convierte una dirección IPv6, un identificador de ámbito y un puerto en una cadena IPv6 en formato estándar.

Windows 8.1 y Windows Server 2012 R2: la función InetNtopW 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

InetPton

RtlIpv4AddressToString

RtlIpv4AddressToStringEx

RtlIpv4StringToAddress

RtlIpv4StringToAddressEx

RtlIpv6AddressToString

RtlIpv6AddressToStringEx

RtlIpv6StringToAddress

RtlIpv6StringToAddressEx

inet_addr

inet_ntoa

ejemplo de inet_xtoy