Condividi tramite


Funzione RtlIpv6AddressToStringExA (ip2string.h)

La funzione RtlIpv6AddressToStringEx converte un indirizzo IPv6, un ID ambito e un numero di porta in una stringa.

Sintassi

NTSYSAPI NTSTATUS RtlIpv6AddressToStringExA(
  [in]      const in6_addr *Address,
  [in]      ULONG          ScopeId,
  [in]      USHORT         Port,
  [out]     PSTR           AddressString,
  [in, out] PULONG         AddressStringLength
);

Parametri

[in] Address

Indirizzo IPv6 nell'ordine di byte di rete.

[in] ScopeId

ID ambito dell'indirizzo IPv6 nell'ordine di byte di rete. Questo parametro è facoltativo e,

[in] Port

Numero di porta in formato ordine byte di rete. Questo parametro è facoltativo e,

[out] AddressString

Puntatore al buffer per ricevere la rappresentazione stringa con terminazione NULL dell'indirizzo IP, dell'ID ambito e della porta. Questo buffer deve essere abbastanza grande per contenere almeno INET6_ADDRSTRLEN caratteri. Il valore INET6_ADDRSTRLEN è definito nel file di intestazione Ws2ipdef.h .

[in, out] AddressStringLength

In input, il numero di caratteri che rientrano nel buffer a cui punta il parametro AddressString , incluso il terminatore NULL.

In output, questo parametro contiene il numero di caratteri effettivamente scritti nel buffer a cui punta il parametro AddressString .

Valore restituito

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

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

Codice restituito Descrizione
STATUS_INVALID_PARAMETER
Un parametro non valido è stato passato alla funzione. Questo errore viene restituito se un puntatore NULL viene passato nel parametro AddressString o AddressStringLength. Questo errore viene restituito anche se la lunghezza del buffer a cui punta il parametro AddressString non è sufficiente per ricevere la rappresentazione stringa dell'indirizzo IPv6, dell'ID ambito e della porta.
Altri
Usare FormatMessage per ottenere la stringa di messaggio per l'errore restituito.

Commenti

La funzione RtlIpv6AddressToStringEx viene usata per convertire un indirizzo IPv6, un ID ambito e un numero di porta nella rappresentazione stringa dell'indirizzo IPv6 in formato Internet seguito da una rappresentazione stringa dell'ID ambito seguita da una rappresentazione stringa della porta. L'ID ambito e il numero di porta sono parametri facoltativi.

La rappresentazione di stringa di base dell'indirizzo IPv6 restituita è costituita da 8 numeri esadecimali separati da due punti. Una stringa di numeri esadecimali consecutivi viene sostituita con due punti. Può essere presente un solo due punti nella rappresentazione stringa dell'indirizzo IPv6. Gli ultimi 32 bit sono rappresentati nella notazione con estensione IPv4 in stile IPv4 se l'indirizzo è un indirizzo compatibile con IPv4, un indirizzo IPv4 mappato a IPv6 o un indirizzo ISATAP. Per altre informazioni, vedere la sezione 5 di RFC 5942 pubblicata da IETF.

Se viene specificato un ID ambito, la rappresentazione stringa dell'ID ambito è separata dalla rappresentazione stringa dell'indirizzo IPv6 in base a un carattere percentuale ('%'). Se viene specificato un numero di porta, la rappresentazione di stringa dell'indirizzo IPv6 e l'ID ambito sono circondati da parentesi graffe quadrate (un carattere '[' iniziale seguito dall'indirizzo IPv6 seguito da un carattere '% seguito dall'ID ambito con un carattere finale ']'). Il numero di porta è rappresentato come due punti che segue il carattere parentesi graffe quadrato destro seguito dalla rappresentazione stringa del numero di porta in decimale.

RtlIpv6AddressToStringEx è una funzione di praticità che non richiede che la DLL di Windows Sockets venga caricata per accedere a una funzione fornita in Windows Sockets per eseguire l'indirizzo IP per la conversione della stringa.

Se la lunghezza del buffer a cui punta il parametro AddressString non è sufficiente per ricevere la rappresentazione stringa dell'indirizzo IP, dell'ID ambito e della porta, RtlIpv6AddressToStringEx restituisce ERROR_INVALID_PARAMETER e imposta il parametro AddressStringLength sulla lunghezza del buffer necessaria.

Quando viene definito UNICODE o _UNICODE, RtlIpv6AddressToStringEx viene definito in RtlIpv6AddressToStringExW, la versione Unicode di questa funzione. Il parametro AddressString viene definito nel tipo di dati PWSTR.

Quando sia UNICODE che _UNICODE non sono definiti, RtlIpv6AddressToStringEx viene definito in RtlIpv6AddressToStringExA, la versione ANSI di questa funzione. Il parametro AddressString viene definito nel tipo di dati PSTR.

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

Una libreria di importazione contenente la funzione RtlIpv6AddressToStringEx non è inclusa nella versione di Microsoft Windows Software Development Kit (Windows SDK) (SDK) per Windows Vista. La funzione RtlIpv6AddressToStringEx è inclusa nella libreria di importazione Ntdll.lib inclusa in Windows Driver Kit (WDK). Un'applicazione può anche usare le funzioni GetModuleHandle e GetProcAddress per recuperare il puntatore della funzione dal Ntdll.dll e chiamare questa funzione.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione ip2string.h (includere Mstcpip.h)
DLL Ntdll.dll

Vedi anche

GetModuleHandle
GetProcAddress
InetNtop
InetPton
LoadLibrary
RtlIpv4AddressToString
RtlIpv4AddressToStringEx
RtlIpv4StringToAddress
RtlIpv4StringToAddressEx
RtlIpv6AddressToString
RtlIpv6StringToAddress
RtlIpv6StringToAddressEx
inet_addr
inet_ntoa