Condividi tramite


funzione inet_ntop (ws2tcpip.h)

Vedere l'esempio di inet_xtoy.

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

PCSTR WSAAPI inet_ntop(
  [in]  INT        Family,
  [in]  const VOID *pAddr,
  [out] PSTR       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.

Valore Significato
AF_INET
2
Famiglia di indirizzi Internet Protocol versione 4 (IPv4). Quando questo parametro viene specificato, questa funzione restituisce una stringa di indirizzi IPv4.
AF_INET6
23
Famiglia di indirizzi IPv6 (Internet Protocol 6). Quando questo parametro viene specificato, questa funzione restituisce una stringa di indirizzi IPv6.

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

Vedi anche

IN6_ADDR

IN_ADDR

InetPton

RtlIpv4AddressToString

RtlIpv4AddressToStringEx

RtlIpv4StringToAddress

RtlIpv4StringToAddressEx

RtlIpv6AddressToString

RtlIpv6AddressToStringEx

RtlIpv6StringToAddress

RtlIpv6StringToAddressEx

inet_addr

inet_ntoa

esempio di inet_xtoy