Función ParseNetworkString (iphlpapi.h)

La función ParseNetworkString analiza la cadena de red de entrada y comprueba si es una representación legal del tipo de cadena de red IP especificado. Si la cadena coincide con un tipo y su especificación, la función puede devolver opcionalmente el resultado analizado.

Sintaxis

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

Parámetros

[in] NetworkString

Puntero a la cadena de red terminada en NULL que se va a analizar.

[in] Types

Tipo de cadena de red IP que se va a analizar. Este parámetro consta de uno de los tipos de cadena de red definidos en el archivo de encabezado Iphlpapi.h .

Valor Significado
NET_STRING_IPV4_ADDRESS
0x00000001
El parámetro NetworkString apunta a una dirección IPv4 mediante la notación decimal de puntos estándar de Internet. Un puerto de red o prefijo no debe estar presente en la cadena de red.

Una cadena de red de ejemplo es la siguiente:

192.168.100.10

NET_STRING_IPV4_SERVICE
0x00000002
El parámetro NetworkString apunta a un servicio IPv4 mediante la notación decimal de puntos estándar de Internet. Se requiere un puerto de red como parte de la cadena de red. Un prefijo no debe estar presente en la cadena de red.

Una cadena de red de ejemplo es la siguiente:

192.168.100.10:80

NET_STRING_IPV4_NETWORK
0x00000004
El parámetro NetworkString apunta a una red IPv4 mediante la notación decimal de puntos estándar de Internet. Se requiere un prefijo de red que usa la notación enrutamiento de Inter-Domain sin clases (CIDR) como parte de la cadena de red. Un puerto de red no debe estar presente en la cadena de red.

Una cadena de red de ejemplo es la siguiente:

192.168.100/24

NET_STRING_IPV6_ADDRESS
0x00000008
El parámetro NetworkString apunta a una dirección IPv6 mediante la codificación hexadecimal estándar de Internet. Un identificador de ámbito IPv6 puede estar presente en la cadena de red. Un puerto de red o prefijo no debe estar presente en la cadena de red.

Una cadena de red de ejemplo es la siguiente:

21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A%2

NET_STRING_IPV6_ADDRESS_NO_SCOPE
0x00000008
El parámetro NetworkString apunta a una dirección IPv6 mediante la codificación hexadecimal estándar de Internet. Un identificador de ámbito IPv6 no debe estar presente en la cadena de red. Un puerto de red o prefijo no debe estar presente en la cadena de red.

Una cadena de red de ejemplo es la siguiente:

21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A

NET_STRING_IPV6_SERVICE
0x00000020
El parámetro NetworkString apunta a un servicio IPv6 mediante la codificación hexadecimal estándar de Internet. Se requiere un puerto de red como parte de la cadena de red. Un identificador de ámbito IPv6 puede estar presente en la cadena de red. Un prefijo no debe estar presente en la cadena de red.

Una cadena de red de ejemplo con un identificador de ámbito es la siguiente:

[21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A%2]:8080

NET_STRING_IPV6_SERVICE_NO_SCOPE
0x00000040
El parámetro NetworkString apunta a un servicio IPv6 mediante la codificación hexadecimal estándar de Internet. Se requiere un puerto de red como parte de la cadena de red. Un identificador de ámbito IPv6 no debe estar presente en la cadena de red. Un prefijo no debe estar presente en la cadena de red.

Una cadena de red de ejemplo es la siguiente:

21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A:8080

NET_STRING_IPV6_NETWORK
0x00000080
El parámetro NetworkString apunta a una red IPv6 mediante la codificación hexadecimal estándar de Internet. Se requiere un prefijo de red en la notación CIDR como parte de la cadena de red. Un puerto de red o identificador de ámbito no debe estar presente en la cadena de red.

Una cadena de red de ejemplo es la siguiente:

21DA:D3::/48

NET_STRING_NAMED_ADDRESS
0x00000100
El parámetro NetworkString apunta a una dirección de Internet mediante un nombre del Sistema de nombres de dominio (DNS). Un puerto de red o prefijo no debe estar presente en la cadena de red.

Una cadena de red de ejemplo es la siguiente:

www.microsoft.com

NET_STRING_NAMED_SERVICE
0x00000200
El parámetro NetworkString apunta a un servicio de Internet mediante un nombre DNS. Un puerto de red debe estar presente en la cadena de red.

Una cadena de red de ejemplo es la siguiente:

www.microsoft.com:80

NET_STRING_IP_ADDRESS
0x00000009
El parámetro NetworkString apunta a una dirección IPv4 mediante la notación decimal de puntos estándar de Internet o una dirección IPv6 mediante la codificación hexadecimal estándar de Internet. Un identificador de ámbito IPv6 puede estar presente en la cadena de red. Un puerto de red o prefijo no debe estar presente en la cadena de red.

Este tipo coincide con los tipos NET_STRING_IPV4_ADDRESS o NET_STRING_IPV6_ADDRESS .

NET_STRING_IP_ADDRESS_NO_SCOPE
0x00000011
El parámetro NetworkString apunta a una dirección IPv4 mediante la notación decimal de puntos estándar de Internet o una dirección IPv6 mediante la codificación hexadecimal estándar de Internet. Un identificador de ámbito IPv6 no debe estar presente en la cadena de red. Un puerto de red o prefijo no debe estar presente en la cadena de red.

Este tipo coincide con los tipos NET_STRING_IPV4_ADDRESS o NET_STRING_IPV6_ADDRESS_NO_SCOPE .

NET_STRING_IP_SERVICE
0x00000022
El parámetro NetworkString apunta a un servicio IPv4 o a un servicio IPv6. Se requiere un puerto de red como parte de la cadena de red. Un identificador de ámbito IPv6 puede estar presente en la cadena de red. Un prefijo no debe estar presente en la cadena de red.

Este tipo coincide con los tipos NET_STRING_IPV4_SERVICE o NET_STRING_IPV6_SERVICE .

NET_STRING_IP_SERVICE_NO_SCOPE
0x00000042
El parámetro NetworkString apunta a un servicio IPv4 o a un servicio IPv6. Se requiere un puerto de red como parte de la cadena de red. Un identificador de ámbito IPv6 no debe estar presente en la cadena de red. Un prefijo no debe estar presente en la cadena de red.

Este tipo coincide con los tipos NET_STRING_IPV4_SERVICE o NET_STRING_IPV6_SERVICE_NO_SCOPE .

NET_STRING_IP_NETWORK
0x00000084
El parámetro NetworkString apunta a una red IPv4 o IPv6. Se requiere un prefijo de red en notación CIDR como parte de la cadena de red. Un puerto de red o un identificador de ámbito no deben estar presentes en la red.

Este tipo coincide con los tipos NET_STRING_IPV4_NETWORK o NET_STRING_IPV6_NETWORK .

NET_STRING_ANY_ADDRESS
0x00000209
El parámetro NetworkString apunta a una dirección IPv4 en notación decimal estándar de puntos de Internet, una dirección IPv6 en la codificación hexadecimal estándar de Internet o un nombre DNS. Un identificador de ámbito IPv6 puede estar presente en la cadena de red para una dirección IPv6. Un puerto de red o prefijo no debe estar presente en la cadena de red.

Este tipo coincide con los tipos NET_STRING_NAMED_ADDRESS o NET_STRING_IP_ADDRESS .

NET_STRING_ANY_ADDRESS_NO_SCOPE
0x00000211
El parámetro NetworkString apunta a una dirección IPv4 en notación decimal estándar de puntos de Internet, una dirección IPv6 en la codificación hexadecimal estándar de Internet o un nombre DNS. Un identificador de ámbito IPv6 no debe estar presente en la cadena de red para una dirección IPv6. Un puerto de red o prefijo no debe estar presente en la cadena de red.

Este tipo coincide con los tipos NET_STRING_NAMED_ADDRESS o NET_STRING_IP_ADDRESS_NO_SCOPE .

NET_STRING_ANY_SERVICE
0x00000222
El parámetro NetworkString apunta a un servicio IPv4 o un servicio IPv6 mediante la notación de dirección IP o un nombre DNS. Se requiere un puerto de red como parte de la cadena de red. Un identificador de ámbito IPv6 puede estar presente en la cadena de red. Un prefijo no debe estar presente en la cadena de red.

Este tipo coincide con los tipos NET_STRING_NAMED_SERVICE o NET_STRING_IP_SERVICE .

NET_STRING_ANY_SERVICE_NO_SCOPE
0x00000242
El parámetro NetworkString apunta a un servicio IPv4 o un servicio IPv6 mediante la notación de dirección IP o un nombre DNS. Se requiere un puerto de red como parte de la cadena de red. Un identificador de ámbito IPv6 no debe estar presente en la cadena de red. Un prefijo no debe estar presente en la cadena de red.

Este tipo coincide con los tipos NET_STRING_NAMED_SERVICE o NET_STRING_IP_SERVICE_NO_SCOPE .

[out, optional] AddressInfo

Si se ejecuta correctamente, la función devuelve un puntero a una estructura de NET_ADDRESS_INFO que contiene la información de dirección IP analizada si no se pasó un puntero NULL en este parámetro.

[out, optional] PortNumber

Si se ejecuta correctamente, la función devuelve un puntero al puerto de red analizado en el orden de host si no se ha pasado un puntero NULL en este parámetro. Si un puerto de red no estaba presente en el parámetro NetworkString , se devuelve un puntero a un valor de cero.

[out, optional] PrefixLength

Si se ejecuta correctamente, la función devuelve un puntero a la longitud del prefijo analizado si no se pasó un puntero NULL en este parámetro. Si un prefijo no estaba presente en el parámetro NetworkString , se devuelve un puntero a un valor de -1.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS.

Si se produce un error en la función, el valor devuelto es uno de los siguientes códigos de error.

Código devuelto Descripción
ERROR_INSUFFICIENT_BUFFER
El búfer pasado a la función es demasiado pequeño. Este error se devuelve si el búfer al que apunta el parámetro AddressInfo es demasiado pequeño para contener la dirección de red analizada.
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 NetworkString .

Comentarios

La función ParseNetworkString analiza la cadena de red de entrada pasada en el parámetro NetworkString y comprueba si es una representación legal de uno de los tipos de cadena como se especifica en el argumento Types . Si la cadena coincide con un tipo y su especificación, la función se realiza correctamente y, opcionalmente, puede devolver el resultado analizado al autor de la llamada en los parámetros Opcional AddressInfo, PortNumber y PrefixLength cuando estos parámetros no son punteros NULL .

La función ParseNetworkString puede analizar representaciones de direcciones IPv4 o IPv6, servicios y redes, así como direcciones y servicios de Internet con nombres DNS.

Estructura de NET_ADDRESS_INFO a la que apunta el parámetro AddressInfo . Las estructuras SOCKADDR_IN y SOCKADDR se definen en el archivo de encabezado Ws2def.h que el archivo de encabezado Winsock2.h incluye automáticamente. La estructura SOCKADDR_IN6 se define en el archivo de encabezado Ws2ipdef.h que el archivo de encabezado Ws2tcpip.h incluye automáticamente. Para usar la función ParseNetworkString y la estructura NET_ADDRESS_INFO , los archivos de encabezado Winsock2.h y Ws2tcpip.h deben incluirse antes del archivo de encabezado Iphlpapi.h .

Requisitos

   
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado iphlpapi.h
Library Iphlpapi.lib
Archivo DLL Iphlpapi.dll

Consulte también

NET_ADDRESS_FORMAT

NET_ADDRESS_INFO

SOCKADDR

SOCKADDR_IN

SOCKADDR_IN6