Funzione InetNtopW (ws2tcpip.h)
La funzione InetNtop converte un indirizzo di rete Internet IPv4 o IPv6 in una stringa in formato Standard Internet. La versione ANSI di questa funzione è inet_ntop.
Sintassi
PCWSTR WSAAPI InetNtopW(
[in] INT Family,
[in] const VOID *pAddr,
[out] PWSTR pStringBuf,
[in] size_t StringBufSize
);
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 incluso automaticamente 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 di PF_ sono identiche (ad esempio, AF_INET e PF_INET), in modo che sia possibile usare una costante.
I valori attualmente supportati sono AF_INET e AF_INET6.
[in] pAddr
Puntatore all'indirizzo IP in byte di rete da convertire in una stringa.
Quando il parametro Family è AF_INET, il parametro pAddr deve puntare a una struttura IN_ADDR con l'indirizzo IPv4 da convertire.
Quando il parametro Family è AF_INET6, il parametro pAddr deve puntare a una struttura IN6_ADDR con l'indirizzo IPv6 da convertire.
[out] pStringBuf
Puntatore a un buffer in cui archiviare la rappresentazione stringa con terminazione NULL dell'indirizzo IP.
Per un indirizzo IPv4, questo buffer deve essere sufficiente per contenere almeno 16 caratteri.
Per un indirizzo IPv6, questo buffer deve essere sufficiente per contenere almeno 46 caratteri.
[in] StringBufSize
In input, la lunghezza, in caratteri, del buffer a cui punta il parametro pStringBuf .
Valore restituito
Se non si verifica alcun errore, la funzione InetNtop restituisce un puntatore a un buffer contenente la rappresentazione stringa dell'indirizzo IP in formato standard.
In caso contrario, viene restituito un valore NULL e un codice di errore specifico può essere recuperato chiamando l'oggetto
WSAGetLastError per informazioni di errore estese.
Se la funzione ha esito negativo, il codice di errore esteso restituito da WSAGetLastError può essere uno dei valori seguenti.
Codice di errore | Significato |
---|---|
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. | |
|
Un parametro non valido è stato passato alla funzione. Questo errore viene restituito se un puntatore NULL viene passato nel valore pStringBuf o il parametro StringBufSize è zero. Questo errore viene restituito anche se la lunghezza del buffer a cui punta il parametro pStringBuf non è sufficiente per ricevere la rappresentazione stringa dell'indirizzo IP. |
Commenti
La funzione InetNtop è supportata in Windows Vista e versioni successive.
La funzione InetNtop fornisce una traduzione da indirizzo a stringa indipendente dal protocollo. La funzione InetNtop accetta una struttura di indirizzi Internet specificata dal parametro pAddr e restituisce una stringa con terminazione NULL che rappresenta l'indirizzo IP. Anche se la funzione inet_ntoa funziona solo con indirizzi IPv4, la funzione InetNtop funziona con indirizzi IPv4 o IPv6.
La versione ANSI di questa funzione è inet_ntop definita in RFC 2553. Per altre informazioni, vedere RFC 2553 disponibile nel sito Web IETF.
La funzione InetNtop non richiede che la DLL di Windows Sockets venga caricata per eseguire l'indirizzo IP per la conversione di stringhe.
Se il parametro Family specificato è AF_INET, il parametro pAddr deve puntare a una struttura IN_ADDR con l'indirizzo IPv4 da convertire. La stringa di indirizzo restituita nel buffer a cui fa riferimento il parametro pStringBuf è in notazione decimale tratteggiata come in "192.168.16.0", un esempio di indirizzo IPv4 nella notazione decimale punteggiata.
Se il parametro Family specificato è AF_INET6, il parametro pAddr deve puntare a una struttura IN6_ADDR con l'indirizzo IPv6 da convertire. La stringa di indirizzo restituita nel buffer a cui fa riferimento il parametro pStringBuf è 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 viene sostituita con due punti. Nella rappresentazione di stringa dell'indirizzo IPv6 può essere presente un solo due punti. Gli ultimi 32 bit sono rappresentati nella notazione con punteggiata in stile IPv4 se l'indirizzo è un indirizzo compatibile con IPv4.
Se la lunghezza del buffer puntata dal parametro pStringBuf non è sufficiente per ricevere la rappresentazione stringa dell'indirizzo IP, InetNtop restituisce ERROR_INVALID_PARAMETER.
Quando viene definito UNICODE o _UNICODE, InetNtop è definito in InetNtopW, la versione Unicode di questa funzione. Il parametro pStringBuf viene definito nel tipo di dati PSTR .
Quando UNICODE o _UNICODE non è definito, InetNtop viene definito in InetNtopA, la versione ANSI di questa funzione. La versione ANSI di questa funzione viene sempre definita come inet_ntop. Il parametro pStringBuf viene definito nel tipo di dati PWSTR .
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 RtlIpv4AddressToString e RtlIpv4AddressToStringEx possono essere usate per convertire un indirizzo IPv4 rappresentato come struttura IN_ADDR in una rappresentazione stringa di un indirizzo IPv4 nella notazione con punteggiatura standard-decimale internet. In Windows Vista e versioni successive, le funzioni RtlIpv6AddressToString e RtlIpv6AddressToStringEx possono essere usate per convertire un indirizzo IPv6 rappresentato come struttura IN6_ADDR in una rappresentazione stringa di un indirizzo IPv6. La funzione RtlIpv6AddressToStringEx è più flessibile poiché converte anche un indirizzo IPv6, un ID ambito e una porta in una stringa IPv6 in formato standard.
Windows 8.1 e Windows Server 2012 R2: la funzione InetNtopW è 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 |