Partager via


Fonction RtlIpv4StringToAddressExW (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 RtlIpv4StringToAddressExW(
  [in]  PCWSTR  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 sous forme de chaîne terminée par NULL de l’adresse IPv4 suivie d’un signe deux-points facultatif et d’une représentation sous forme de 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 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’un des quatre formulaires est autorisé 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 Remarques.

[out] Address

Pointeur où la représentation binaire de l’adresse IPv4 doit être stockée. L’adresse IPv4 est stockée dans l’ordre d’octets réseau.

[out] Port

Pointeur où la représentation binaire du numéro de port doit être stockée. Le numéro de port est retourné dans l’ordre d’octets réseau. Si aucun port n’a été spécifié dans la chaîne pointée 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 Descriptif
STATUS_INVALID_PARAMETER
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 AddressString ne contenait pas de représentation sous forme de chaîne en pointillés en quatre parties d’une adresse IPv4. Cette erreur est également retournée si la chaîne pointée par le paramètre AddressString 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.

Autres
Utilisez FormatMessage pour obtenir la chaîne de message pour l’erreur retournée.

Remarques

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 un 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 Windows Sockets pour effectuer une conversion de chaîne en adresse IP.

Si le paramètre Strict est défini sur TRUE, la chaîne pointée par le paramètre AddressString doit être en notation décimale en pointillés strict. 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é, de gauche à droite, aux quatre octets d’une adresse IPv4.

Lorsque le paramètre Strict est défini sur 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 par 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 la plupart des deux octets appropriés 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 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 la plupart des trois octets appropriés 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 le paramètre AddressString ne contient qu’une seule chaîne d’adresse, la valeur est stockée directement dans l’adresse réseau sans réorganisation d’octets.

La mémoire tampon pointée par 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 par 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 par 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 .

Spécifications

Requirement Valeur
Client minimum requis Windows Vista [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau | Applications UWP]
plateforme cible Fenêtres
Header ip2string.h (include Mstcpip.h)
Library ntdll.lib
DLL ntdll.dll

Voir aussi

GetModuleHandle

GetProcAddress

IN_ADDR

InetNtop

InetPton

LoadLibrary

RtlIpv4AddressToString

RtlIpv4AddressToStringEx

RtlIpv4StringToAddress

RtlIpv6AddressToString

RtlIpv6AddressToStringEx

RtlIpv6StringToAddress

RtlIpv6StringToAddressEx

inet_addr

inet_ntoa