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 . |
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