Share via


Função ParseNetworkString (iphlpapi.h)

A função ParseNetworkString analisa a cadeia de caracteres de rede de entrada e verifica se ela é uma representação legal do tipo de cadeia de caracteres de rede IP especificado. Se a cadeia de caracteres corresponder a um tipo e sua especificação, a função poderá retornar opcionalmente o resultado analisado.

Sintaxe

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

Um ponteiro para a cadeia de caracteres de rede terminada em NULL a ser analisada.

[in] Types

O tipo de cadeia de caracteres de rede IP a ser analisada. Esse parâmetro consiste em um dos tipos de cadeia de caracteres de rede, conforme definido no arquivo de cabeçalho Iphlpapi.h .

Valor Significado
NET_STRING_IPV4_ADDRESS
0x00000001
O parâmetro NetworkString aponta para um endereço IPv4 usando notação ponto-decimal padrão da Internet. Uma porta de rede ou prefixo não deve estar presente na cadeia de caracteres de rede.

Um exemplo de cadeia de caracteres de rede é o seguinte:

192.168.100.10

NET_STRING_IPV4_SERVICE
0x00000002
O parâmetro NetworkString aponta para um serviço IPv4 usando notação ponto-decimal padrão da Internet. Uma porta de rede é necessária como parte da cadeia de caracteres de rede. Um prefixo não deve estar presente na cadeia de caracteres de rede.

Um exemplo de cadeia de caracteres de rede é o seguinte:

192.168.100.10:80

NET_STRING_IPV4_NETWORK
0x00000004
O parâmetro NetworkString aponta para uma rede IPv4 usando notação ponto-decimal padrão da Internet. Um prefixo de rede que usa a notação CIDR (Roteamento Entre Domínios Sem Classe) é necessário como parte da cadeia de caracteres de rede. Uma porta de rede não deve estar presente na cadeia de caracteres de rede.

Um exemplo de cadeia de caracteres de rede é o seguinte:

192.168.100/24

NET_STRING_IPV6_ADDRESS
0x00000008
O parâmetro NetworkString aponta para um endereço IPv6 usando a codificação hexadecimal padrão da Internet. Uma ID de escopo IPv6 pode estar presente na cadeia de caracteres de rede. Uma porta de rede ou prefixo não deve estar presente na cadeia de caracteres de rede.

Um exemplo de cadeia de caracteres de rede é o seguinte:

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

NET_STRING_IPV6_ADDRESS_NO_SCOPE
0x00000008
O parâmetro NetworkString aponta para um endereço IPv6 usando a codificação hexadecimal padrão da Internet. Uma ID de escopo IPv6 não deve estar presente na cadeia de caracteres de rede. Uma porta de rede ou prefixo não deve estar presente na cadeia de caracteres de rede.

Um exemplo de cadeia de caracteres de rede é o seguinte:

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

NET_STRING_IPV6_SERVICE
0x00000020
O parâmetro NetworkString aponta para um serviço IPv6 usando a codificação hexadecimal padrão da Internet. Uma porta de rede é necessária como parte da cadeia de caracteres de rede. Uma ID de escopo IPv6 pode estar presente na cadeia de caracteres de rede. Um prefixo não deve estar presente na cadeia de caracteres de rede.

Um exemplo de cadeia de caracteres de rede com uma ID de escopo é o seguinte:

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

NET_STRING_IPV6_SERVICE_NO_SCOPE
0x00000040
O parâmetro NetworkString aponta para um serviço IPv6 usando a codificação hexadecimal padrão da Internet. Uma porta de rede é necessária como parte da cadeia de caracteres de rede. Uma ID de escopo IPv6 não deve estar presente na cadeia de caracteres de rede. Um prefixo não deve estar presente na cadeia de caracteres de rede.

Um exemplo de cadeia de caracteres de rede é o seguinte:

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

NET_STRING_IPV6_NETWORK
0x00000080
O parâmetro NetworkString aponta para uma rede IPv6 usando a codificação hexadecimal padrão da Internet. Um prefixo de rede na notação CIDR é necessário como parte da cadeia de caracteres de rede. Uma porta de rede ou ID de escopo não deve estar presente na cadeia de caracteres de rede.

Um exemplo de cadeia de caracteres de rede é o seguinte:

21DA:D3::/48

NET_STRING_NAMED_ADDRESS
0x00000100
O parâmetro NetworkString aponta para um endereço da Internet usando um nome DNS (Sistema de Nomes de Domínio). Uma porta de rede ou prefixo não deve estar presente na cadeia de caracteres de rede.

Um exemplo de cadeia de caracteres de rede é o seguinte:

www.microsoft.com

NET_STRING_NAMED_SERVICE
0x00000200
O parâmetro NetworkString aponta para um serviço de Internet usando um nome DNS. Uma porta de rede deve estar presente na cadeia de caracteres de rede.

Um exemplo de cadeia de caracteres de rede é o seguinte:

www.microsoft.com:80

NET_STRING_IP_ADDRESS
0x00000009
O parâmetro NetworkString aponta para um endereço IPv4 usando notação decimal padrão da Internet ou um endereço IPv6 usando a codificação hexadecimal padrão da Internet. Uma ID de escopo IPv6 pode estar presente na cadeia de caracteres de rede. Uma porta de rede ou prefixo não deve estar presente na cadeia de caracteres de rede.

Esse tipo corresponde aos tipos NET_STRING_IPV4_ADDRESS ou NET_STRING_IPV6_ADDRESS .

NET_STRING_IP_ADDRESS_NO_SCOPE
0x00000011
O parâmetro NetworkString aponta para um endereço IPv4 usando notação ponto-decimal padrão da Internet ou um endereço IPv6 usando a codificação hexadecimal padrão da Internet. Uma ID de escopo IPv6 não deve estar presente na cadeia de caracteres de rede. Uma porta de rede ou prefixo não deve estar presente na cadeia de caracteres de rede.

Esse tipo corresponde aos tipos NET_STRING_IPV4_ADDRESS ou NET_STRING_IPV6_ADDRESS_NO_SCOPE .

NET_STRING_IP_SERVICE
0x00000022
O parâmetro NetworkString aponta para um serviço IPv4 ou serviço IPv6. Uma porta de rede é necessária como parte da cadeia de caracteres de rede. Uma ID de escopo IPv6 pode estar presente na cadeia de caracteres de rede. Um prefixo não deve estar presente na cadeia de caracteres de rede.

Esse tipo corresponde aos tipos NET_STRING_IPV4_SERVICE ou NET_STRING_IPV6_SERVICE .

NET_STRING_IP_SERVICE_NO_SCOPE
0x00000042
O parâmetro NetworkString aponta para um serviço IPv4 ou serviço IPv6. Uma porta de rede é necessária como parte da cadeia de caracteres de rede. Uma ID de escopo IPv6 não deve estar presente na cadeia de caracteres de rede. Um prefixo não deve estar presente na cadeia de caracteres de rede.

Esse tipo corresponde aos tipos NET_STRING_IPV4_SERVICE ou NET_STRING_IPV6_SERVICE_NO_SCOPE .

NET_STRING_IP_NETWORK
0x00000084
O parâmetro NetworkString aponta para uma rede IPv4 ou IPv6. Um prefixo de rede na notação CIDR é necessário como parte da cadeia de caracteres de rede. Uma porta de rede ou ID de escopo não deve estar presente na rede.

Esse tipo corresponde aos tipos NET_STRING_IPV4_NETWORK ou NET_STRING_IPV6_NETWORK .

NET_STRING_ANY_ADDRESS
0x00000209
O parâmetro NetworkString aponta para um endereço IPv4 na notação dotted-decimal padrão da Internet, um endereço IPv6 na codificação hexadecimal padrão da Internet ou um nome DNS. Uma ID de escopo IPv6 pode estar presente na cadeia de caracteres de rede para um endereço IPv6. Uma porta de rede ou prefixo não deve estar presente na cadeia de caracteres de rede.

Esse tipo corresponde aos tipos NET_STRING_NAMED_ADDRESS ou NET_STRING_IP_ADDRESS .

NET_STRING_ANY_ADDRESS_NO_SCOPE
0x00000211
O parâmetro NetworkString aponta para um endereço IPv4 na notação dotted-decimal padrão da Internet, um endereço IPv6 na codificação hexadecimal padrão da Internet ou um nome DNS. Uma ID de escopo IPv6 não deve estar presente na cadeia de caracteres de rede para um endereço IPv6. Uma porta de rede ou prefixo não deve estar presente na cadeia de caracteres de rede.

Esse tipo corresponde aos tipos NET_STRING_NAMED_ADDRESS ou NET_STRING_IP_ADDRESS_NO_SCOPE .

NET_STRING_ANY_SERVICE
0x00000222
O parâmetro NetworkString aponta para um serviço IPv4 ou serviço IPv6 usando notação de endereço IP ou um nome DNS. Uma porta de rede é necessária como parte da cadeia de caracteres de rede. Uma ID de escopo IPv6 pode estar presente na cadeia de caracteres de rede. Um prefixo não deve estar presente na cadeia de caracteres de rede.

Esse tipo corresponde aos tipos NET_STRING_NAMED_SERVICE ou NET_STRING_IP_SERVICE .

NET_STRING_ANY_SERVICE_NO_SCOPE
0x00000242
O parâmetro NetworkString aponta para um serviço IPv4 ou serviço IPv6 usando notação de endereço IP ou um nome DNS. Uma porta de rede é necessária como parte da cadeia de caracteres de rede. Uma ID de escopo IPv6 não deve estar presente na cadeia de caracteres de rede. Um prefixo não deve estar presente na cadeia de caracteres de rede.

Esse tipo corresponde aos tipos NET_STRING_NAMED_SERVICE ou NET_STRING_IP_SERVICE_NO_SCOPE .

[out, optional] AddressInfo

Com êxito, a função retorna um ponteiro para uma estrutura NET_ADDRESS_INFO que contém as informações de endereço IP analisadas se um ponteiro NULL não foi passado nesse parâmetro.

[out, optional] PortNumber

Com êxito, a função retorna um ponteiro para a porta de rede analisada na ordem do host se um ponteiro NULL não foi passado nesse parâmetro. Se uma porta de rede não estiver presente no parâmetro NetworkString , um ponteiro para um valor igual a zero será retornado.

[out, optional] PrefixLength

Em caso de êxito, a função retornará um ponteiro para o comprimento do prefixo analisado se um ponteiro NULL não tiver sido passado nesse parâmetro. Se um prefixo não estiver presente no parâmetro NetworkString , um ponteiro para um valor de -1 será retornado.

Valor retornado

Se a função obtiver êxito, o valor retornado será ERROR_SUCCESS.

Se a função falhar, o valor retornado será um dos seguintes códigos de erro.

Código de retorno Descrição
ERROR_INSUFFICIENT_BUFFER
O buffer passado para a função é muito pequeno. Esse erro será retornado se o buffer apontado pelo parâmetro AddressInfo for muito pequeno para manter o endereço de rede analisado.
ERROR_INVALID_PARAMETER
Um parâmetro inválido foi passado para a função. Esse erro será retornado se um ponteiro NULL for passado no parâmetro NetworkString

Comentários

A função ParseNetworkString analisa a cadeia de caracteres de rede de entrada passada no parâmetro NetworkString e verifica se é uma representação legal de um dos tipos de cadeia de caracteres, conforme especificado no argumento Types . Se a cadeia de caracteres corresponder a um tipo e sua especificação, a função terá êxito e, opcionalmente, poderá retornar o resultado analisado para o chamador nos parâmetros opcionais AddressInfo, PortNumber e PrefixLength quando esses parâmetros não forem ponteiros NULL .

A função ParseNetworkString pode analisar representações de endereços, serviços e redes IPv4 ou IPv6, bem como endereços e serviços da Internet nomeados usando nomes DNS.

A estrutura NET_ADDRESS_INFO apontada pelo parâmetro AddressInfo . As estruturas SOCKADDR_IN e SOCKADDR são definidas no arquivo de cabeçalho Ws2def.h , que é incluído automaticamente pelo arquivo de cabeçalho Winsock2.h . A estrutura SOCKADDR_IN6 é definida no arquivo de cabeçalho Ws2ipdef.h que é incluído automaticamente pelo arquivo de cabeçalho Ws2tcpip.h . Para usar a função ParseNetworkString e a estrutura NET_ADDRESS_INFO , os arquivos de cabeçalho Winsock2.h e Ws2tcpip.h devem ser incluídos antes do arquivo de cabeçalho Iphlpapi.h .

Requisitos

   
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho iphlpapi.h
Biblioteca Iphlpapi.lib
DLL Iphlpapi.dll

Confira também

NET_ADDRESS_FORMAT

NET_ADDRESS_INFO

SOCKADDR

SOCKADDR_IN

SOCKADDR_IN6