Condividi tramite


Funzione ParseNetworkString (iphlpapi.h)

La funzione ParseNetworkString analizza la stringa di rete di input e verifica se è una rappresentazione legale del tipo di stringa di rete IP specificato. Se la stringa corrisponde a un tipo e alla relativa specifica, la funzione può facoltativamente restituire il risultato analizzato.

Sintassi

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

Parametri

[in] NetworkString

Puntatore alla stringa di rete con terminazione NULL da analizzare.

[in] Types

Tipo di stringa di rete IP da analizzare. Questo parametro è costituito da uno dei tipi di stringa di rete definiti nel file di intestazione Iphlpapi.h .

Valore Significato
NET_STRING_IPV4_ADDRESS
0x00000001
Il parametro NetworkString punta a un indirizzo IPv4 usando la notazione decimale standard di Internet. Una porta di rete o un prefisso non devono essere presenti nella stringa di rete.

Una stringa di rete di esempio è la seguente:

192.168.100.10

NET_STRING_IPV4_SERVICE
0x00000002
Il parametro NetworkString punta a un servizio IPv4 usando la notazione decimale standard di Internet. Una porta di rete è necessaria come parte della stringa di rete. Un prefisso non deve essere presente nella stringa di rete.

Una stringa di rete di esempio è la seguente:

192.168.100.10:80

NET_STRING_IPV4_NETWORK
0x00000004
Il parametro NetworkString punta a una rete IPv4 usando la notazione decimale standard di Internet. È necessario un prefisso di rete che usa la notazione CIDR (Classless Inter-Domain Routing) come parte della stringa di rete. Una porta di rete non deve essere presente nella stringa di rete.

Una stringa di rete di esempio è la seguente:

192.168.100/24

NET_STRING_IPV6_ADDRESS
0x00000008
Il parametro NetworkString punta a un indirizzo IPv6 usando la codifica esadecimale standard di Internet. Un ID ambito IPv6 può essere presente nella stringa di rete. Una porta di rete o un prefisso non devono essere presenti nella stringa di rete.

Una stringa di rete di esempio è la seguente:

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

NET_STRING_IPV6_ADDRESS_NO_SCOPE
0x00000008
Il parametro NetworkString punta a un indirizzo IPv6 usando la codifica esadecimale standard di Internet. Un ID ambito IPv6 non deve essere presente nella stringa di rete. Una porta di rete o un prefisso non devono essere presenti nella stringa di rete.

Una stringa di rete di esempio è la seguente:

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

NET_STRING_IPV6_SERVICE
0x00000020
Il parametro NetworkString punta a un servizio IPv6 usando la codifica esadecimale standard di Internet. Una porta di rete è necessaria come parte della stringa di rete. Un ID ambito IPv6 può essere presente nella stringa di rete. Un prefisso non deve essere presente nella stringa di rete.

Una stringa di rete di esempio con un ID ambito è la seguente:

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

NET_STRING_IPV6_SERVICE_NO_SCOPE
0x00000040
Il parametro NetworkString punta a un servizio IPv6 usando la codifica esadecimale standard di Internet. Una porta di rete è necessaria come parte della stringa di rete. Un ID ambito IPv6 non deve essere presente nella stringa di rete. Un prefisso non deve essere presente nella stringa di rete.

Una stringa di rete di esempio è la seguente:

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

NET_STRING_IPV6_NETWORK
0x00000080
Il parametro NetworkString punta a una rete IPv6 usando la codifica esadecimale standard di Internet. È necessario un prefisso di rete nella notazione CIDR come parte della stringa di rete. Una porta di rete o un ID ambito non deve essere presente nella stringa di rete.

Una stringa di rete di esempio è la seguente:

21DA:D3::/48

NET_STRING_NAMED_ADDRESS
0x00000100
Il parametro NetworkString punta a un indirizzo Internet usando un nome DNS (Domain Name System). Una porta di rete o un prefisso non devono essere presenti nella stringa di rete.

Una stringa di rete di esempio è la seguente:

www.microsoft.com

NET_STRING_NAMED_SERVICE
0x00000200
Il parametro NetworkString punta a un servizio Internet usando un nome DNS. Una porta di rete deve essere presente nella stringa di rete.

Una stringa di rete di esempio è la seguente:

www.microsoft.com:80

NET_STRING_IP_ADDRESS
0x00000009
Il parametro NetworkString punta a un indirizzo IPv4 usando la notazione decimale standard di Internet o un indirizzo IPv6 usando la codifica esadecimale standard di Internet. Un ID ambito IPv6 può essere presente nella stringa di rete. Una porta di rete o un prefisso non devono essere presenti nella stringa di rete.

Questo tipo corrisponde ai tipi NET_STRING_IPV4_ADDRESS o NET_STRING_IPV6_ADDRESS .

NET_STRING_IP_ADDRESS_NO_SCOPE
0x00000011
Il parametro NetworkString punta a un indirizzo IPv4 usando la notazione decimale standard di Internet o un indirizzo IPv6 usando la codifica esadecimale standard di Internet. Un ID ambito IPv6 non deve essere presente nella stringa di rete. Una porta di rete o un prefisso non devono essere presenti nella stringa di rete.

Questo tipo corrisponde ai tipi NET_STRING_IPV4_ADDRESS o NET_STRING_IPV6_ADDRESS_NO_SCOPE .

NET_STRING_IP_SERVICE
0x00000022
Il parametro NetworkString punta a un servizio IPv4 o IPv6. Una porta di rete è necessaria come parte della stringa di rete. Un ID ambito IPv6 può essere presente nella stringa di rete. Un prefisso non deve essere presente nella stringa di rete.

Questo tipo corrisponde ai tipi NET_STRING_IPV4_SERVICE o NET_STRING_IPV6_SERVICE .

NET_STRING_IP_SERVICE_NO_SCOPE
0x00000042
Il parametro NetworkString punta a un servizio IPv4 o IPv6. Una porta di rete è necessaria come parte della stringa di rete. Un ID ambito IPv6 non deve essere presente nella stringa di rete. Un prefisso non deve essere presente nella stringa di rete.

Questo tipo corrisponde ai tipi NET_STRING_IPV4_SERVICE o NET_STRING_IPV6_SERVICE_NO_SCOPE .

NET_STRING_IP_NETWORK
0x00000084
Il parametro NetworkString punta a una rete IPv4 o IPv6. È necessario un prefisso di rete nella notazione CIDR come parte della stringa di rete. Una porta di rete o un ID ambito non deve essere presente nella rete.

Questo tipo corrisponde ai tipi NET_STRING_IPV4_NETWORK o NET_STRING_IPV6_NETWORK .

NET_STRING_ANY_ADDRESS
0x00000209
Il parametro NetworkString punta a un indirizzo IPv4 nella notazione decimale standard di Internet, a un indirizzo IPv6 nella codifica esadecimale standard di Internet o a un nome DNS. Un ID ambito IPv6 può essere presente nella stringa di rete per un indirizzo IPv6. Una porta di rete o un prefisso non devono essere presenti nella stringa di rete.

Questo tipo corrisponde ai tipi NET_STRING_NAMED_ADDRESS o NET_STRING_IP_ADDRESS .

NET_STRING_ANY_ADDRESS_NO_SCOPE
0x00000211
Il parametro NetworkString punta a un indirizzo IPv4 nella notazione decimale standard di Internet, a un indirizzo IPv6 nella codifica esadecimale standard di Internet o a un nome DNS. Un ID ambito IPv6 non deve essere presente nella stringa di rete per un indirizzo IPv6. Una porta di rete o un prefisso non devono essere presenti nella stringa di rete.

Questo tipo corrisponde ai tipi NET_STRING_NAMED_ADDRESS o NET_STRING_IP_ADDRESS_NO_SCOPE .

NET_STRING_ANY_SERVICE
0x00000222
Il parametro NetworkString punta a un servizio IPv4 o a un servizio IPv6 usando la notazione dell'indirizzo IP o un nome DNS. Una porta di rete è necessaria come parte della stringa di rete. Un ID ambito IPv6 può essere presente nella stringa di rete. Un prefisso non deve essere presente nella stringa di rete.

Questo tipo corrisponde ai tipi NET_STRING_NAMED_SERVICE o NET_STRING_IP_SERVICE .

NET_STRING_ANY_SERVICE_NO_SCOPE
0x00000242
Il parametro NetworkString punta a un servizio IPv4 o a un servizio IPv6 usando la notazione dell'indirizzo IP o un nome DNS. Una porta di rete è necessaria come parte della stringa di rete. Un ID ambito IPv6 non deve essere presente nella stringa di rete. Un prefisso non deve essere presente nella stringa di rete.

Questo tipo corrisponde ai tipi NET_STRING_NAMED_SERVICE o NET_STRING_IP_SERVICE_NO_SCOPE .

[out, optional] AddressInfo

In caso di esito positivo, la funzione restituisce un puntatore a una struttura NET_ADDRESS_INFO contenente le informazioni sull'indirizzo IP analizzato se un puntatore NULL non è stato passato in questo parametro.

[out, optional] PortNumber

In caso di esito positivo, la funzione restituisce un puntatore alla porta di rete analizzata nell'ordine host se un puntatore NULL non è stato passato in questo parametro. Se una porta di rete non è presente nel parametro NetworkString , viene restituito un puntatore a un valore pari a zero.

[out, optional] PrefixLength

In caso di esito positivo, la funzione restituisce un puntatore alla lunghezza del prefisso analizzato se un puntatore NULL non è stato passato in questo parametro. Se un prefisso non è presente nel parametro NetworkString , viene restituito un puntatore a un valore di -1.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è ERROR_SUCCESS.

Se la funzione ha esito negativo, il valore restituito è uno dei codici di errore seguenti.

Codice restituito Descrizione
ERROR_INSUFFICIENT_BUFFER
Il buffer passato alla funzione è troppo piccolo. Questo errore viene restituito se il buffer puntato dal parametro AddressInfo è troppo piccolo per contenere l'indirizzo di rete analizzato.
ERROR_INVALID_PARAMETER
Un parametro non valido è stato passato alla funzione. Questo errore viene restituito se un puntatore NULL viene passato nel parametro NetworkString

Commenti

La funzione ParseNetworkString analizza la stringa di rete di input passata nel parametro NetworkString e verifica se è una rappresentazione legale di uno dei tipi di stringa come specificato nell'argomento Tipi . Se la stringa corrisponde a un tipo e alla relativa specifica, la funzione ha esito positivo e può facoltativamente restituire il risultato analizzato al chiamante nel chiamante facoltativo AddressInfo, PortNumber e Parametri PrefixLength quando questi parametri non sono puntatori NULL .

La funzione ParseNetworkString può analizzare le rappresentazioni di indirizzi IPv4 o IPv6, servizi e reti, nonché indirizzi Internet denominati e servizi tramite nomi DNS.

Struttura NET_ADDRESS_INFO puntata dal parametro AddressInfo . Le strutture SOCKADDR_IN e SOCKADDR sono definite nel file di intestazione Ws2def.h incluso automaticamente dal file di intestazione Winsock2.h . La struttura SOCKADDR_IN6 viene definita nel file di intestazione Ws2ipdef.h incluso automaticamente dal file di intestazione Ws2tcpip.h . Per usare la funzione ParseNetworkString e la struttura NET_ADDRESS_INFO , i file di intestazione Winsock2.h e Ws2tcpip.h devono essere inclusi prima del file di intestazione Iphlpapi.h .

Requisiti

   
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione iphlpapi.h
Libreria Iphlpapi.lib
DLL Iphlpapi.dll

Vedi anche

NET_ADDRESS_FORMAT

NET_ADDRESS_INFO

SOCKADDR

SOCKADDR_IN

SOCKADDR_IN6