funzione inet_pton (ws2tcpip.h)

La funzione InetPton converte un indirizzo di rete Internet IPv4 o IPv6 nel formato di presentazione testo standard nel formato binario numerico. La versione ANSI di questa funzione è inet_pton.

Sintassi

INT WSAAPI inet_pton(
  [in]  INT   Family,
  [in]  PCSTR pszAddrString,
  [out] PVOID pAddrBuf
);

Parametri

[in] Family

Famiglia di indirizzi.

I valori possibili per la famiglia di indirizzi sono definiti nel file di intestazione Ws2def.h . Si noti che il file di intestazione Ws2def.h viene automaticamente incluso in Winsock2.h e non deve mai essere usato direttamente. Si noti che i valori per la famiglia di indirizzi AF_ e le costanti della famiglia di protocolli PF_ sono identiche (ad esempio, AF_INET e PF_INET), in modo che sia possibile usare entrambe le costanti.

I valori attualmente supportati sono AF_INET e AF_INET6.

Valore Significato
AF_INET
2
Famiglia di indirizzi IPv4 (Internet Protocol versione 4). Quando si specifica questo parametro, il parametro pszAddrString deve puntare a una rappresentazione testuale di un indirizzo IPv4 e il parametro pAddrBuf restituisce un puntatore a una struttura IN_ADDR che rappresenta l'indirizzo IPv4.
AF_INET6
23
Famiglia di indirizzi IPv6 (Internet Protocol versione 6). Quando si specifica questo parametro, il parametro pszAddrString deve puntare a una rappresentazione testuale di un indirizzo IPv6 e il parametro pAddrBuf restituisce un puntatore a una struttura IN6_ADDR che rappresenta l'indirizzo IPv6.

[in] pszAddrString

Puntatore alla stringa con terminazione NULL che contiene la rappresentazione testuale dell'indirizzo IP da convertire in formato binario numerico.

Quando il parametro Family è AF_INET, il parametro pszAddrString deve puntare a una rappresentazione testuale di un indirizzo IPv4 in notazione decimale punteggiata standard.

Quando il parametro Family è AF_INET6, il parametro pszAddrString deve puntare a una rappresentazione testuale di un indirizzo IPv6 nella notazione standard.

[out] pAddrBuf

Puntatore a un buffer in cui archiviare la rappresentazione binaria numerica dell'indirizzo IP. L'indirizzo IP viene restituito nell'ordine dei byte di rete.

Quando il parametro Family è AF_INET, questo buffer deve essere sufficientemente grande da contenere una struttura IN_ADDR .

Quando il parametro Family è AF_INET6, questo buffer deve essere sufficientemente grande da contenere una struttura di IN6_ADDR .

Valore restituito

Se non si verifica alcun errore, la funzione InetPton restituisce un valore pari a 1 e il buffer a cui punta il parametro pAddrBuf contiene l'indirizzo IP numerico binario nell'ordine dei byte di rete.

La funzione InetPton restituisce un valore pari a 0 se il parametro pAddrBuf punta a una stringa che non è una stringa IPv4 punteggiata-decimale valida o una stringa di indirizzo IPv6 valida. In caso contrario, viene restituito il valore -1 e è possibile recuperare un codice di errore specifico chiamando
WSAGetLastError per informazioni sugli errori estese.

Se la funzione presenta un errore, il codice di errore esteso restituito da WSAGetLastError può essere uno dei valori seguenti.

Codice di errore Significato
WSAEAFNOSUPPORT
La famiglia di indirizzi specificata nel parametro Family non è supportata. Questo errore viene restituito se il parametro Family specificato non è stato AF_INET o AF_INET6.
WSAEFAULT
I parametri pszAddrString o pAddrBuf sono NULL o non fanno parte dello spazio indirizzi utente.

Commenti

La funzione InetPton è supportata in Windows Vista e versioni successive.

La funzione InetPton fornisce una conversione indipendente dal protocollo di un indirizzo di rete Internet nel formato di presentazione testo standard nel formato binario numerico. La funzione InetPton accetta una rappresentazione testuale di un indirizzo Internet a cui punta il parametro pszAddrString e restituisce un puntatore all'indirizzo IP binario numerico nel parametro pAddrBuf . Mentre la funzione inet_addr funziona solo con le stringhe di indirizzo IPv4, la funzione InetPton funziona con stringhe di indirizzo IPv4 o IPv6.

La versione ANSI di questa funzione è inet_pton definita in RFC 2553. Per altre informazioni, vedere RFC 2553 disponibile nel sito Web IETF.

La funzione InetPton non richiede il caricamento della DLL di Windows Sockets per eseguire la conversione di una stringa di testo che rappresenta un indirizzo IP in un indirizzo IP binario numerico.

Se il parametro Family specificato è AF_INET, il parametro pszAddrString deve puntare una stringa di testo di un indirizzo IPv4 in notazione decimale punteggiata come in "192.168.16.0", un esempio di indirizzo IPv4 nella notazione decimale punteggiata.

Se il parametro Family specificato è AF_INET6, il parametro pszAddrString deve puntare a una stringa di testo di un indirizzo IPv6 in formato standard Internet. La rappresentazione di stringa di base è costituita da 8 numeri esadecimali separati da due punti. Una stringa di numeri zero consecutivi può essere sostituita con due due punti. Nella rappresentazione di stringa dell'indirizzo IPv6 può essere presente un solo due punti. Gli ultimi 32 bit possono essere rappresentati nella notazione con ottetto punteggiato in stile IPv4 se l'indirizzo è un indirizzo compatibile con IPv4.

Quando viene definito UNICODE o _UNICODE, InetPton viene definito in InetPtonW, la versione Unicode di questa funzione. Il parametro pszAddrString viene definito per il tipo di dati PCWSTR .

Quando UNICODE o _UNICODE non è definito, InetPton viene definito in InetPtonA, la versione ANSI di questa funzione. La versione ANSI di questa funzione viene sempre definita come inet_pton. Il parametro pszAddrString viene definito nel tipo di dati PCSTR .

La struttura IN_ADDR è definita nel file di intestazione Inaddr.h .

La struttura IN6_ADDR è definita nel file di intestazione In6addr.h .

In Windows Vista e versioni successive, le funzioni RtlIpv4StringToAddress e RtlIpv4StringToAddressEx possono essere usate per convertire una rappresentazione testuale di un indirizzo IPv4 in notazione decimale tratteggiata standard in un indirizzo binario numerico rappresentato come struttura IN_ADDR . In Windows Vista e versioni successive è possibile usare le funzioni RtlIpv6StringToAddress e RtlIpv6StringToAddressEx per convertire una rappresentazione di stringa di un indirizzo IPv6 in un indirizzo IPv6 binario numerico rappresentato come struttura IN6_ADDR . La funzione RtlIpv6StringToAddressEx è più flessibile poiché converte anche una rappresentazione di stringa di un indirizzo IPv6 che può includere un ID ambito e una porta nella notazione standard in un formato binario numerico.

Windows 8.1 e Windows Server 2012 R2: la funzione InetPtonW è supportata per le app di Windows Store in Windows 8.1, Windows Server 2012 R2 e versioni successive.

Requisiti

Requisito Valore
Client minimo supportato Windows 8.1, Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione ws2tcpip.h
Libreria Ws2_32.lib
DLL Ws2_32.dll

Vedi anche

IN6_ADDR

IN_ADDR

InetNtop

RtlIpv4AddressToString

RtlIpv4AddressToStringEx

RtlIpv4StringToAddress

RtlIpv4StringToAddressEx

RtlIpv6AddressToString

RtlIpv6AddressToStringEx

RtlIpv6StringToAddress

RtlIpv6StringToAddressEx

inet_addr

inet_ntoa