Fonction RtlIpv4StringToAddressA (ip2string.h)
La fonction RtlIpv4StringToAddress convertit une représentation sous forme de chaîne d’une adresse IPv4 en adresse IPv4 binaire.
Syntaxe
NTSYSAPI NTSTATUS RtlIpv4StringToAddressA(
[in] PCSTR S,
[in] BOOLEAN Strict,
[out] PCSTR *Terminator,
[out] in_addr *Addr
);
Paramètres
[in] S
Pointeur vers une mémoire tampon contenant l'NULLreprésentation sous forme de chaîne terminée de l’adresse IPv4.
[in] Strict
Valeur qui indique si la chaîne doit être une adresse IPv4 représentée en notation décimale en quatre parties stricte. Si ce paramètre est TRUE, la chaîne doit être en pointillés décimales avec quatre parties. Si ce paramètre est FALSE, l’une des quatre formes possibles est autorisée, avec une notation décimale, octale ou hexadécimale. Pour plus d’informations, consultez la section Remarques.
[out] Terminator
Paramètre qui reçoit un pointeur vers le caractère qui a terminé la chaîne convertie. Cela peut être utilisé par l’appelant pour extraire plus d’informations de la chaîne.
[out] Addr
Pointeur où la représentation binaire de l’adresse IPv4 doit être stockée.
Valeur de retour
Si la fonction réussit, la valeur de retour est STATUS_SUCCESS.
Si la fonction échoue, la valeur de retour est l’un des codes d’erreur suivants.
Retourner le code | Description |
---|---|
|
Un paramètre non valide a été passé à la fonction. Cette erreur est retournée si le paramètre Strict a été défini sur TRUE, mais que la chaîne pointée par le paramètre S ne contenait pas de représentation sous forme de chaîne décimale en quatre parties d’une adresse IPv4. Cette erreur est également retournée si la chaîne pointée par le paramètre S ne contenait pas de représentation sous forme de chaîne appropriée d’une adresse IPv4.
Ce code d’erreur est défini dans le fichier d’en-tête Ntstatus.h. |
|
Utilisez formatMessage pour obtenir la chaîne de message pour l’erreur retournée. |
Remarques
La fonction RtlIpv4StringToAddress est utilisée pour convertir une représentation sous forme de chaîne de l’adresse IPv4 en adresse IPv4 retournée dans l’ordre réseau (octets classés de gauche à droite).
RtlIpv4StringToAddress est une fonction pratique qui ne nécessite pas que la DLL Windows Sockets soit chargée pour accéder à une fonction fournie dans Windows Sockets pour effectuer une conversion de chaîne en adresse IP.
Si le paramètre strict
Lorsque le paramètre Strict est défini sur FALSE, la chaîne pointée par paramètre S peut se trouver dans l’un des différents formats possibles. Lorsque la mémoire tampon pointée par paramètre S contient une chaîne d’adresse en trois parties, la dernière partie est interprétée comme une quantité 16 bits et placée dans la plupart des deux octets de l’adresse réseau. Cela rend le format d’adresse en trois parties pratique pour spécifier les adresses réseau de la classe B en tant que « 128.net.host ». Lorsque la mémoire tampon pointée par paramètre S contient une chaîne d’adresse en deux parties, la dernière partie est interprétée comme une quantité 24 bits et placée dans la plupart des trois octets de l’adresse réseau. Cela rend le format d’adresse en deux parties pratique pour spécifier les adresses réseau de classe A en tant que « net.host ». Lorsque la mémoire tampon pointée par paramètre S contient uniquement une chaîne d’adresse en une seule partie, la valeur est stockée directement dans l’adresse réseau sans réorganisation d’octets.
En cas de réussite, le paramètre Terminator pointe vers le caractère qui a terminé la chaîne qui a été convertie. Cela permet à une application de transmettre une chaîne qui contient une adresse IP ainsi que des informations supplémentaires à la fonction RtlIpv4StringToAddress, puis d’analyser les informations restantes.
Quand unicode ou _UNICODE est défini, RtlIpv4StringToAddress est défini sur RtlIpv4StringToAddressW, la version Unicode de cette fonction. Le paramètre S est défini sur le type de données PCWSTR et le paramètre Terminator est défini sur le type de données LPCWSTR.
Lorsque unicode et _UNICODE ne sont pas définis, RtlIpv4StringToAddress est défini sur RtlIpv4StringToAddressA, la version ANSI de cette fonction. Les paramètres S et Terminator sont définis sur le type de données PCSTR.
La structure
Une bibliothèque d’importation contenant la fonction RtlIpv4StringToAddress n’est pas incluse dans le Kit de développement logiciel Microsoft Windows (SDK) publié pour Windows Vista. La fonction RtlIpv4StringToAddress est incluse dans la bibliothèque d’importation Ntdll.lib incluse dans le Kit de pilotes Windows (WDK). Une application peut également utiliser les fonctions GetModuleHandle et GetProcAddress pour récupérer le pointeur de fonction à partir du Ntdll.dll et appeler cette fonction.
Note
L’en-tête ip2string.h définit RtlIpv4StringToAddress comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows Vista [applications de bureau | Applications UWP] |
serveur minimum pris en charge | Windows Server 2008 [applications de bureau | Applications UWP] |
plateforme cible | Windows |
d’en-tête | ip2string.h (include Mstcpip.h, Ip2string.h) |
bibliothèque | ntdll.lib |
DLL | ntdll.dll |