Funzione RtlIpv4StringToAddressExA (ip2string.h)
La funzione RtlIpv4StringToAddressEx converte una rappresentazione di stringa di un indirizzo IPv4 e un numero di porta in un indirizzo e una porta IPv4 binari.
Sintassi
NTSYSAPI NTSTATUS RtlIpv4StringToAddressExA(
[in] PCSTR AddressString,
[in] BOOLEAN Strict,
[out] in_addr *Address,
[out] PUSHORT Port
);
Parametri
[in] AddressString
Puntatore a un buffer contenente la rappresentazione di stringa con terminazione NULL dell'indirizzo IPv4 seguito da due punti facoltativi e una rappresentazione di stringa di un numero di porta.
[in] Strict
Valore che indica se la stringa deve essere un indirizzo IPv4 rappresentato in notazione decimale tratteggiata rigorosa in quattro parti. Se questo parametro è TRUE, la stringa deve essere punteggiata-decimale con quattro parti. Se questo parametro è FALSE, per la rappresentazione di stringa dell'indirizzo Ipv4 sono consentiti uno qualsiasi di quattro moduli, con notazione decimale, ottale o esadecimale. Vedere la sezione Osservazioni per informazioni dettagliate.
[out] Address
Puntatore in cui deve essere archiviata la rappresentazione binaria dell'indirizzo IPv4. L'indirizzo IPv4 viene archiviato in ordine di byte di rete.
[out] Port
Puntatore in cui deve essere archiviata la rappresentazione binaria del numero di porta. Il numero di porta viene restituito nell'ordine dei byte di rete. Se nella stringa a cui punta il parametro AddressString non è stata specificata alcuna porta, il parametro Port viene impostato su zero.
Valore restituito
Se la funzione ha esito positivo, il valore restituito viene STATUS_SUCCESS.
Se la funzione ha esito negativo, il valore restituito è uno dei codici di errore seguenti.
Codice restituito | Descrizione |
---|---|
|
Alla funzione è stato passato un parametro non valido. Questo errore viene restituito se il parametro Strict è stato impostato su TRUE, ma la stringa a cui punta il parametro AddressString non contiene una rappresentazione di stringa decimale punteggiata in quattro parti di un indirizzo IPv4. Questo errore viene restituito anche se la stringa a cui punta il parametro AddressString non contiene una rappresentazione di stringa corretta di un indirizzo IPv4. Questo codice di errore viene definito nel file di intestazione Ntstatus.h. |
Commenti
La funzione RtlIpv4StringToAddressEx viene usata per convertire una rappresentazione di stringa dell'indirizzo IPv4 e del numero di porta in un indirizzo IPv4 binario e un numero di porta. L'indirizzo IPv4 viene restituito nell'ordine di rete (byte ordinati da sinistra a destra). Il numero di porta viene restituito nell'ordine di rete.
RtlIpv4StringToAddressEx è una funzione utile che non richiede il caricamento della DLL di Windows Sockets per accedere a una funzione fornita in Windows Sockets per eseguire la conversione della stringa nell'indirizzo IP.
Se il parametro Strict è impostato su TRUE, la stringa a cui punta il parametro AddressString deve essere in notazione decimale tratteggiata rigorosa. Questo formato rigoroso richiede che vengano specificate quattro parti. Ogni parte viene interpretata come byte decimale di dati e assegnata, da sinistra a destra, ai quattro byte di un indirizzo IPv4.
Quando il parametro Strict è impostato su FALSE, la stringa a cui punta il parametro AddressString può trovarsi in uno dei diversi formati possibili. Quando il buffer a cui punta il parametro AddressString contiene una stringa di indirizzi in tre parti, l'ultima parte viene interpretata come quantità a 16 bit e inserita nella maggior parte dei due byte più a destra dell'indirizzo di rete. In questo modo il formato degli indirizzi in tre parti risulta utile per specificare gli indirizzi di rete della classe B come "128.net.host".
Quando il buffer a cui punta il parametro AddressString contiene una stringa di indirizzi in due parti, l'ultima parte viene interpretata come quantità a 24 bit e inserita nella parte più destra di tre byte dell'indirizzo di rete. In questo modo, il formato degli indirizzi in due parti risulta utile per specificare gli indirizzi di rete della classe A come "net.host". Quando il buffer a cui punta il parametro AddressString contiene solo una stringa di indirizzi in una parte, il valore viene archiviato direttamente nell'indirizzo di rete senza ridisporre alcun byte.
Il buffer a cui punta il parametro AddressString può contenere la stringa di indirizzo IPv4 seguita da due punti facoltativi e dalla rappresentazione di stringa di un numero di porta. Se una stringa numerica di porta viene inclusa nel buffer a cui punta il parametro AddressString , la rappresentazione binaria del numero di porta viene restituita nel parametro Port . Se il buffer a cui punta il parametro AddressString non contiene un numero di porta, nel parametro Port viene restituito uno zero.
Quando viene definito UNICODE o _UNICODE, RtlIpv4StringToAddressEx viene definito in RtlIpv4StringToAddressExW, la versione Unicode di questa funzione. Il parametro AddressString viene definito per il tipo di dati PCWSTR.
Quando unicode e _UNICODE non sono definiti, RtlIpv4StringToAddressEx viene definito in RtlIpv4StringToAddressExA, la versione ANSI di questa funzione. Il parametro AddressString viene definito per il tipo di dati PCSTR.
La struttura IN_ADDR è definita nel file di intestazione Inaddr.h .
Una libreria di importazione contenente la funzione RtlIpv4StringToAddressEx non è inclusa in Microsoft Windows Software Development Kit (SDK) rilasciato per Windows Vista. La funzione RtlIpv4StringToAddressEx è 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 di funzione dal Ntdll.dll e chiamare questa funzione.
Requisiti
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 (include Mstcpip.h) |
DLL | Ntdll.dll |
Vedi anche
GetModuleHandle
GetProcAddress
IN_ADDR
InetNtop
InetPton
LoadLibrary
RtlIpv4AddressToString
RtlIpv4AddressToStringEx
RtlIpv4StringToAddress
RtlIpv6AddressToString
RtlIpv6AddressToStringEx
RtlIpv6StringToAddress
RtlIpv6StringToAddressEx
inet_addr
inet_ntoa