다음을 통해 공유


RtlIpv6AddressToStringExA 함수(ip2string.h)

RtlIpv6AddressToStringEx 함수는 IPv6 주소, scope ID 및 포트 번호를 문자열로 변환합니다.

구문

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

매개 변수

[in] Address

네트워크 바이트 순서의 IPv6 주소입니다.

[in] ScopeId

IPv6 주소의 scope ID(네트워크 바이트 순서)입니다. 이 매개 변수는 선택적 요소입니다.

[in] Port

네트워크 바이트 순서 형식의 포트 번호입니다. 이 매개 변수는 선택적 요소입니다.

[out] AddressString

IP 주소, scope ID 및 포트의 NULL로 끝나는 문자열 표현을 수신하는 버퍼에 대한 포인터입니다. 이 버퍼는 최소 INET6_ADDRSTRLEN 문자를 저장할 수 있을 만큼 커야 합니다. INET6_ADDRSTRLEN 값은 Ws2ipdef.h 헤더 파일에 정의되어 있습니다.

[in, out] AddressStringLength

입력에서 NULL 종결자를 포함하여 AddressString 매개 변수가 가리키는 버퍼에 맞는 문자 수입니다.

출력에서 이 매개 변수에는 AddressString 매개 변수가 가리키는 버퍼에 실제로 기록된 문자 수가 포함됩니다.

반환 값

함수가 성공하면 반환 값이 STATUS_SUCCESS.

함수가 실패하면 반환 값은 다음 오류 코드 중 하나입니다.

반환 코드 설명
STATUS_INVALID_PARAMETER
잘못된 매개 변수가 함수에 전달되었습니다. 이 오류는 AddressString 또는 AddressStringLength 매개 변수에 NULL 포인터가 전달되면 반환됩니다. AddressString 매개 변수가 가리키는 버퍼의 길이가 IPv6 주소, scope ID 및 포트의 문자열 표현을 받을 만큼 충분히 크지 않은 경우에도 이 오류가 반환됩니다.
기타
FormatMessage를 사용하여 반환된 오류에 대한 메시지 문자열을 가져옵니다.

설명

RtlIpv6AddressToStringEx 함수는 IPv6 주소, scope ID 및 포트 번호를 인터넷 형식으로 IPv6 주소의 문자열 표현으로 변환한 다음, scope ID의 문자열 표현과 포트의 문자열 표현을 변환하는 데 사용됩니다. scope ID 및 포트 번호는 선택적 매개 변수입니다.

반환된 IPv6 주소의 기본 문자열 표현은 콜론으로 구분된 8개의 16진수로 구성됩니다. 연속된 0 16진수의 문자열은 이중 콜론으로 바뀝니다. IPv6 주소의 문자열 표현에는 이중 콜론이 하나만 있을 수 있습니다. 주소가 IPv4 호환 주소, IPv4 매핑된 IPv6 주소 또는 ISATAP 주소인 경우 마지막 32비트는 IPv4 스타일 점선 옥텟 표기법으로 표시됩니다. 자세한 내용은 IETF에서 게시한 RFC 5942 의 섹션 5를 참조하세요.

scope ID가 제공되면 scope ID의 문자열 표현이 IPv6 주소의 문자열 표현과 백분율 문자('%')로 구분됩니다. 포트 번호가 제공되면 IPv6 주소 및 scope ID의 문자열 표현이 정사각형 중괄호로 묶입니다(선행 '[' 문자 뒤에 IPv6 주소가 뒤에 '% 문자, 뒤에 ']' 문자가 있는 scope ID). 포트 번호는 오른쪽 정사각형 중괄호 문자 뒤에 10진수 포트 번호의 문자열 표현 뒤에 콜론으로 표시됩니다.

RtlIpv6AddressToStringEx 는 Windows 소켓에 제공된 함수에 액세스하기 위해 Windows 소켓 DLL을 로드하여 IP 주소를 문자열로 변환할 필요가 없는 편리한 함수입니다.

AddressString 매개 변수가 가리키는 버퍼의 길이가 IP 주소, scope ID 및 포트의 문자열 표현을 받을 만큼 충분히 크지 않으면 RtlIpv6AddressToStringExERROR_INVALID_PARAMETER 반환하고 AddressStringLength 매개 변수를 필요한 버퍼 길이로 설정합니다.

UNICODE 또는 _UNICODE 정의되면 RtlIpv6AddressToStringEx 는 이 함수의 유니코드 버전인 RtlIpv6AddressToStringExW에 정의됩니다. AddressString 매개 변수는 PWSTR 데이터 형식에 정의됩니다.

UNICODE와 _UNICODE 모두 정의되지 않은 경우 RtlIpv6AddressToStringEx 는 이 함수의 ANSI 버전인 RtlIpv6AddressToStringExA에 정의됩니다. AddressString 매개 변수는 PSTR 데이터 형식에 정의됩니다.

IN6_ADDR 구조체는 In6addr.h 헤더 파일에 정의되어 있습니다.

RtlIpv6AddressToStringEx 함수를 포함하는 가져오기 라이브러리는 Windows Vista용으로 릴리스된 Microsoft SDK(Windows SDK(소프트웨어 개발 키트))에 포함되지 않습니다. RtlIpv6AddressToStringEx 함수는 WDK(Windows 드라이버 키트)에 포함된 Ntdll.lib 가져오기 라이브러리에 포함되어 있습니다. 애플리케이션은 GetModuleHandleGetProcAddress 함수를 사용하여 Ntdll.dll 함수 포인터를 검색하고 이 함수를 호출할 수도 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 ip2string.h(Mstcpip.h 포함)
DLL Ntdll.dll

추가 정보

GetModuleHandle
GetProcAddress
InetNtop
InetPton
LoadLibrary
RtlIpv4AddressToString
RtlIpv4AddressToStringEx
RtlIpv4StringToAddress
RtlIpv4StringToAddressEx
RtlIpv6AddressToString
RtlIpv6StringToAddress
RtlIpv6StringToAddressEx
inet_addr
inet_ntoa