Fonction RtlIpv4StringToAddressExA (ip2string.h)
La fonction RtlIpv4StringToAddressEx convertit une représentation sous forme de chaîne d’une adresse IPv4 et d’un numéro de port en adresse et port IPv4 binaires.
Syntaxe
NTSYSAPI NTSTATUS RtlIpv4StringToAddressExA(
[in] PCSTR AddressString,
[in] BOOLEAN Strict,
[out] in_addr *Address,
[out] PUSHORT Port
);
Paramètres
[in] AddressString
Pointeur vers une mémoire tampon contenant la représentation de chaîne terminée par NULL de l’adresse IPv4 suivie d’une représentation facultative des deux-points et de la chaîne d’un numéro de port.
[in] Strict
Valeur qui indique si la chaîne doit être une adresse IPv4 représentée en notation décimale à quatre parties stricte. Si ce paramètre a la valeur TRUE, la chaîne doit être en pointillé-décimal avec quatre parties. Si ce paramètre a la valeur FALSE, l’une des quatre formes est autorisée pour la représentation sous forme de chaîne de l’adresse Ipv4, avec une notation décimale, octale ou hexadécimale. Pour plus d'informations, consultez la section Notes.
[out] Address
Pointeur dans lequel la représentation binaire de l’adresse IPv4 doit être stockée. L’adresse IPv4 est stockée dans l’ordre d’octet réseau.
[out] Port
Pointeur dans lequel la représentation binaire du numéro de port doit être stockée. Le numéro de port est retourné dans l’ordre d’octet réseau. Si aucun port n’a été spécifié dans la chaîne pointée vers par le paramètre AddressString , le paramètre Port est défini sur zéro.
Valeur retournée
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.
Code de retour | Description |
---|---|
|
Un paramètre non valide a été transmis à 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 AddressString ne contient pas de représentation de chaîne décimale en pointillés en quatre parties d’une adresse IPv4. Cette erreur est également retournée si la chaîne pointée vers par le paramètre AddressString ne contient 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. |
Notes
La fonction RtlIpv4StringToAddressEx est utilisée pour convertir une représentation sous forme de chaîne de l’adresse IPv4 et du numéro de port en adresse IPv4 binaire et numéro de port. L’adresse IPv4 est retournée dans l’ordre réseau (octets classés de gauche à droite). Le numéro de port est retourné dans l’ordre réseau.
RtlIpv4StringToAddressEx est une fonction pratique qui ne nécessite pas que la DLL windows Sockets soit chargée pour accéder à une fonction fournie dans les sockets Windows pour effectuer la conversion de chaîne en adresse IP.
Si le paramètre Strict a la valeur TRUE, la chaîne pointée par le paramètre AddressString doit être en notation décimale stricte. Ce format strict nécessite que quatre parties soient spécifiées. Chaque partie est interprétée comme un octet décimal de données et affectée, de gauche à droite, aux quatre octets d’une adresse IPv4.
Lorsque le paramètre Strict a la valeur FALSE, la chaîne pointée par le paramètre AddressString peut se trouver dans l’un des différents formats possibles. Lorsque la mémoire tampon pointée vers le paramètre AddressString 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 le plus à droite 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 classe B comme « 128.net.host ».
Lorsque la mémoire tampon pointée vers le paramètre AddressString 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 le plus à droite 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 comme « net.host ». Lorsque la mémoire tampon pointée vers le paramètre AddressString ne contient qu’une chaîne d’adresse en une seule partie, la valeur est stockée directement dans l’adresse réseau sans aucun réarrangement d’octets.
La mémoire tampon pointée vers le paramètre AddressString peut contenir la chaîne d’adresse IPv4 suivie d’un signe deux-points facultatif et de la représentation sous forme de chaîne d’un numéro de port. Si une chaîne de numéro de port est incluse dans la mémoire tampon pointée vers le paramètre AddressString , la représentation binaire du numéro de port est retournée dans le paramètre Port . Si la mémoire tampon pointée vers le paramètre AddressString ne contient pas de numéro de port, un zéro est retourné dans le paramètre Port .
Lorsque unicode ou _UNICODE est défini, RtlIpv4StringToAddressEx est défini sur RtlIpv4StringToAddressExW, la version Unicode de cette fonction. Le paramètre AddressString est défini sur le type de données PCWSTR.
Lorsque UNICODE et _UNICODE ne sont pas définis, RtlIpv4StringToAddressEx est défini sur RtlIpv4StringToAddressExA, la version ANSI de cette fonction. Le paramètre AddressString est défini sur le type de données PCSTR.
La structure IN_ADDR est définie dans le fichier d’en-tête Inaddr.h .
Une bibliothèque d’importation contenant la fonction RtlIpv4StringToAddressEx n’est pas incluse dans le Kit de développement logiciel (SDK) Microsoft Windows publié pour Windows Vista. La fonction RtlIpv4StringToAddressEx 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.
Spécifications
Client minimal pris en charge | Windows Vista [applications de bureau | applications UWP] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau | applications UWP] |
Plateforme cible | Windows |
En-tête | ip2string.h (inclure Mstcpip.h) |
DLL | Ntdll.dll |
Voir aussi
GetModuleHandle
GetProcAddress
IN_ADDR
InetNtop
InetPton
LoadLibrary
RtlIpv4AddressToString
RtlIpv4AddressToStringEx
RtlIpv4StringToAddress
RtlIpv6AddressToString
RtlIpv6AddressToStringEx
RtlIpv6StringToAddress
RtlIpv6StringToAddressEx
inet_addr
inet_ntoa