RtlIpv6AddressToStringA function (ip2string.h)

The RtlIpv6AddressToString function converts an IPv6 address to a string in Internet standard format.


NTSYSAPI PSTR RtlIpv6AddressToStringA(
  [in]  const in6_addr *Addr,
  [out] PSTR           S


[in] Addr

The IPv6 address in network byte order.

[out] S

A pointer to a buffer in which to store the NULL-terminated string representation of the IPv6 address. This buffer should be large enough to hold at least 46 characters.

Return value

A pointer to the NULL character inserted at the end of the string representation of the IPv6 address. This can be used by the caller to easily append more information to the string.


The RtlIpv6AddressToString function is used to convert an IPv6 address to the string representation of the IPv6 address in Internet standard format.

The basic string representation consists of 8 hexadecimal numbers separated by colons. A string of consecutive zero numbers is replaced with a double-colon. There can only be one double-colon in the string representation of the IPv6 address. The last 32 bits are represented in IPv4-style dotted-octet notation if the address is an IPv4-compatible address, an IPv4-mapped IPv6 address, or an ISATAP address. For more information, see section 5 of RFC 5942 published by the IETF.

RtlIpv6AddressToString is a convenience function that does not require that the Windows Sockets DLL be loaded to access a function provided in Windows Sockets to perform IP address to string conversion.

When either UNICODE or _UNICODE is defined, RtlIpv6AddressToString is defined to RtlIpv6AddressToStringW, the Unicode version of this function. The string parameter S and the function return value are defined to the PWSTR data type.

When both UNICODE and _UNICODE are not defined, RtlIpv6AddressToString is defined to RtlIpv6AddressToStringA, the ANSI version of this function. The string parameter S and the function return value are defined to the PSTR data type.

The IN6_ADDR structure is defined in the In6addr.h header file.

An import library containing the RtlIpv6AddressToString function is not included in the Microsoft Windows Software Development Kit (SDK) released for Windows Vista. The RtlIpv6AddressToString function is included in the Ntdll.lib import library included in the Windows Driver Kit (WDK). An application could also use the GetModuleHandle and GetProcAddress functions to retrieve the function pointer from the Ntdll.dll and call this function.


The ip2string.h header defines RtlIpv6AddressToString as an alias which automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Mixing usage of the encoding-neutral alias with code that not encoding-neutral can lead to mismatches that result in compilation or runtime errors. For more information, see Conventions for Function Prototypes.


Minimum supported client Windows Vista [desktop apps | UWP apps]
Minimum supported server Windows Server 2008 [desktop apps | UWP apps]
Target Platform Windows
Header ip2string.h (include Mstcpip.h, Ip2string.h)
DLL Ntdll.dll

See also