Partager via


Fonction RtlIpv6AddressToStringExA (ip2string.h)

La fonction RtlIpv6AddressToStringEx convertit une adresse IPv6, un ID d’étendue et un numéro de port en chaîne.

Syntaxe

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

Paramètres

[in] Address

Adresse IPv6 dans l’ordre d’octet réseau.

[in] ScopeId

ID d’étendue de l’adresse IPv6 dans l’ordre d’octet réseau. Ce paramètre est facultatif.

[in] Port

Numéro de port au format d’ordre des octets réseau. Ce paramètre est facultatif.

[out] AddressString

Pointeur vers la mémoire tampon pour recevoir la représentation de chaîne terminée par null de l’adresse IP, de l’ID d’étendue et du port. Cette mémoire tampon doit être suffisamment grande pour contenir au moins INET6_ADDRSTRLEN caractères. La valeur INET6_ADDRSTRLEN est définie dans le fichier d’en-tête Ws2ipdef.h .

[in, out] AddressStringLength

En entrée, le nombre de caractères qui s’intègrent dans la mémoire tampon pointée vers le paramètre AddressString , y compris le point de terminaison NULL.

Sur la sortie, ce paramètre contient le nombre de caractères réellement écrits dans la mémoire tampon pointée par le paramètre AddressString .

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
STATUS_INVALID_PARAMETER
Un paramètre non valide a été transmis à la fonction. Cette erreur est retournée si un pointeur NULL est passé dans le paramètre AddressString ou AddressStringLength . Cette erreur est également retournée si la longueur de la mémoire tampon pointée par le paramètre AddressString n’est pas suffisamment grande pour recevoir la représentation sous forme de chaîne de l’adresse IPv6, de l’ID d’étendue et du port.
Autres
Utilisez FormatMessage pour obtenir la chaîne de message pour l’erreur retournée.

Remarques

La fonction RtlIpv6AddressToStringEx permet de convertir une adresse IPv6, un ID d’étendue et un numéro de port en une représentation sous forme de chaîne de l’adresse IPv6 au format Internet, suivie d’une représentation sous forme de chaîne de l’ID d’étendue suivie d’une représentation sous forme de chaîne du port. L’ID d’étendue et le numéro de port sont des paramètres facultatifs.

La représentation sous forme de chaîne de base de l’adresse IPv6 retournée se compose de 8 nombres hexadécimaux séparés par des points-virgules. Une chaîne de nombres hexadécimaux zéro consécutifs est remplacée par un double-signe deux-points. Il ne peut y avoir qu’un seul signe deux-points dans la représentation sous forme de chaîne de l’adresse IPv6. Les 32 derniers bits sont représentés en notation en pointillés de style IPv4 si l’adresse est une adresse compatible IPv4, une adresse IPv6 mappée ou une adresse ISATAP. Pour plus d’informations, consultez la section 5 de la RFC 5942 publiée par l’IETF.

Si un ID d’étendue est fourni, la représentation sous forme de chaîne de l’ID d’étendue est séparée de la représentation sous forme de chaîne de l’adresse IPv6 par un caractère de pourcentage ('%'). Si un numéro de port est fourni, la représentation sous forme de chaîne de l’adresse IPv6 et de l’ID d’étendue sont entourées d’accolades carrées (un caractère de début « [ » suivi de l’adresse IPv6 suivi d’un caractère « % » suivi de l’ID d’étendue avec un caractère de fin « ] »). Le numéro de port est représenté sous la forme d’un signe deux-points suivant l’accolade carrée droite, suivi de la représentation sous forme de chaîne du numéro de port en décimal.

RtlIpv6AddressToStringEx est une fonction pratique qui ne nécessite pas que la DLL des sockets Windows soit chargée pour accéder à une fonction fournie dans les sockets Windows pour effectuer la conversion d’adresse IP en chaîne.

Si la longueur de la mémoire tampon pointée par le paramètre AddressString n’est pas assez grande pour recevoir la représentation sous forme de chaîne de l’adresse IP, de l’ID d’étendue et du port, RtlIpv6AddressToStringEx retourne ERROR_INVALID_PARAMETER et définit le paramètre AddressStringLength sur la longueur de mémoire tampon requise.

Lorsque unicode ou _UNICODE est défini, RtlIpv6AddressToStringEx est défini sur RtlIpv6AddressToStringExW, la version Unicode de cette fonction. Le paramètre AddressString est défini sur le type de données PWSTR.

Lorsque UNICODE et _UNICODE ne sont pas définis, RtlIpv6AddressToStringEx est défini sur RtlIpv6AddressToStringExA, la version ANSI de cette fonction. Le paramètre AddressString est défini sur le type de données PSTR.

La structure IN6_ADDR est définie dans le fichier d’en-tête In6addr.h .

Une bibliothèque d’importation contenant la fonction RtlIpv6AddressToStringEx n’est pas incluse dans le Microsoft Kit de développement logiciel Windows (Kit SDK Windows) (SDK) publié pour Windows Vista. La fonction RtlIpv6AddressToStringEx 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.

Configuration requise

Condition requise Valeur
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
InetNtop
InetPton
LoadLibrary
RtlIpv4AddressToString
RtlIpv4AddressToStringEx
RtlIpv4StringToAddress
RtlIpv4StringToAddressEx
RtlIpv6AddressToString
RtlIpv6StringToAddress
RtlIpv6StringToAddressEx
inet_addr
inet_ntoa