inet_ntop 함수(ws2tcpip.h)
inet_xtoy 샘플을 참조하세요.
InetNtop 함수는 IPv4 또는 IPv6 인터넷 네트워크 주소를 인터넷 표준 형식의 문자열로 변환합니다. 이 함수의 ANSI 버전은 inet_ntop.
구문
PCSTR WSAAPI inet_ntop(
[in] INT Family,
[in] const VOID *pAddr,
[out] PSTR pStringBuf,
[in] size_t StringBufSize
);
매개 변수
[in] Family
주소 패밀리입니다.
주소 패밀리에 대한 가능한 값은 Ws2def.h 헤더 파일에 정의되어 있습니다. Ws2def.h 헤더 파일은 Winsock2.h에 자동으로 포함되며 직접 사용하면 안 됩니다. AF_ 주소 패밀리 및 PF_ 프로토콜 패밀리 상수의 값은 동일하므로(예: AF_INET 및 PF_INET) 상수를 사용할 수 있습니다.
현재 지원되는 값은 AF_INETAF_INET6.
값 | 의미 |
---|---|
|
IPv4(인터넷 프로토콜 버전 4) 주소 패밀리입니다. 이 매개 변수를 지정하면 이 함수는 IPv4 주소 문자열을 반환합니다. |
|
IPv6(인터넷 프로토콜 버전 6) 주소 패밀리입니다. 이 매개 변수를 지정하면 이 함수는 IPv6 주소 문자열을 반환합니다. |
[in] pAddr
문자열로 변환할 네트워크 바이트의 IP 주소에 대한 포인터입니다.
Family 매개 변수가 AF_INET경우 pAddr 매개 변수는 변환할 IPv4 주소가 있는 IN_ADDR 구조를 가리킵니다.
Family 매개 변수가 AF_INET6경우 pAddr 매개 변수는 변환할 IPv6 주소가 있는 IN6_ADDR 구조를 가리킵니다.
[out] pStringBuf
IP 주소의 NULL로 종료된 문자열 표현을 저장할 버퍼에 대한 포인터입니다.
IPv4 주소의 경우 이 버퍼는 16자 이상을 보유할 수 있을 만큼 커야 합니다.
IPv6 주소의 경우 이 버퍼는 46자 이상을 보유할 수 있을 만큼 커야 합니다.
[in] StringBufSize
입력에서 pStringBuf 매개 변수가 가리키는 버퍼의 길이(문자)입니다.
반환 값
오류가 발생하지 않으면 InetNtop 함수는 IP 주소의 문자열 표현을 표준 형식으로 포함하는 버퍼에 대한 포인터를 반환합니다.
그렇지 않으면 NULL 값이 반환되고 를 호출하여 특정 오류 코드를 검색할 수 있습니다.
확장된 오류 정보에 대한 WSAGetLastError입니다.
함수가 실패하면 WSAGetLastError 에서 반환된 확장 오류 코드가 다음 값 중 하나일 수 있습니다.
오류 코드 | 의미 |
---|---|
Family 매개 변수에 지정된 주소 패밀리 는 지원되지 않습니다. 지정한 Family 매개 변수가 AF_INET 또는AF_INET6 않으면 이 오류가 반환됩니다. | |
|
잘못된 매개 변수가 함수에 전달되었습니다. 이 오류는 nULL 포인터가 pStringBuf 에 전달되거나 StringBufSize 매개 변수가 0이면 반환됩니다. pStringBuf 매개 변수가 가리키는 버퍼의 길이가 IP 주소의 문자열 표현을 받을 만큼 충분히 크지 않은 경우에도 이 오류가 반환됩니다. |
설명
InetNtop 함수는 Windows Vista 이상에서 지원됩니다.
InetNtop 함수는 프로토콜 독립적 주소-문자열 변환을 제공합니다. InetNtop 함수는 pAddr 매개 변수로 지정된 인터넷 주소 구조를 사용하고 IP 주소를 나타내는 NULL로 끝나는 문자열을 반환합니다. inet_ntoa 함수는 IPv4 주소에서만 작동하지만 InetNtop 함수는 IPv4 또는 IPv6 주소에서 작동합니다.
이 함수의 ANSI 버전은 RFC 2553에 정의된 대로 inet_ntop . 자세한 내용은 IETF 웹 사이트에서 제공되는 RFC 2553을 참조하세요.
InetNtop 함수는 IP 주소를 문자열로 변환하기 위해 Windows 소켓 DLL을 로드할 필요가 없습니다.
지정한 Family 매개 변수가 AF_INET 경우 pAddr 매개 변수는 변환할 IPv4 주소가 있는 IN_ADDR 구조를 가리킵니다. pStringBuf 매개 변수가 가리키는 버퍼에서 반환된 주소 문자열은 점선 10진수 표기법의 IPv4 주소 예제인 "192.168.16.0"에서와 같이 점선 10진수 표기법입니다.
지정한 Family 매개 변수가 AF_INET6 경우 pAddr 매개 변수는 변환할 IPv6 주소를 사용하여 IN6_ADDR 구조를 가리킵니다. pStringBuf 매개 변수가 가리키는 버퍼에 반환된 주소 문자열은 인터넷 표준 형식입니다. 기본 문자열 표현은 콜론으로 구분된 8개의 16진수 숫자로 구성됩니다. 연속된 0개의 숫자 문자열은 이중 콜론으로 바뀝니다. IPv6 주소의 문자열 표현에는 이중 콜론이 하나만 있을 수 있습니다. 주소가 IPv4 호환 주소인 경우 마지막 32비트는 IPv4 스타일 점선 옥텟 표기법으로 표시됩니다.
pStringBuf 매개 변수가 가리키는 버퍼의 길이가 IP 주소의 문자열 표현을 받을 만큼 충분히 크지 않으면 InetNtop은 ERROR_INVALID_PARAMETER 반환합니다.
UNICODE 또는 _UNICODE 정의되면 InetNtop 은 이 함수의 유니코드 버전인 InetNtopW에 정의됩니다. pStringBuf 매개 변수는 PSTR 데이터 형식에 정의됩니다.
UNICODE 또는 _UNICODE 정의되지 않은 경우 InetNtop 은 이 함수의 ANSI 버전인 InetNtopA에 정의됩니다. 이 함수의 ANSI 버전은 항상 inet_ntop 정의됩니다. pStringBuf 매개 변수는 PWSTR 데이터 형식에 정의됩니다.
IN_ADDR 구조체는 Inaddr.h 헤더 파일에 정의되어 있습니다.
IN6_ADDR 구조체는 In6addr.h 헤더 파일에 정의되어 있습니다.
Windows Vista 이상에서는 RtlIpv4AddressToString 및 RtlIpv4AddressToStringEx 함수를 사용하여 IN_ADDR 구조로 표시된 IPv4 주소를 인터넷 표준 점선 소수점 표기법의 IPv4 주소 문자열 표현으로 변환할 수 있습니다. Windows Vista 이상에서는 RtlIpv6AddressToString 및 RtlIpv6AddressToStringEx 함수를 사용하여 IN6_ADDR 구조체로 표시된 IPv6 주소를 IPv6 주소의 문자열 표현으로 변환할 수 있습니다. RtlIpv6AddressToStringEx 함수는 IPv6 주소, scope ID 및 포트를 표준 형식의 IPv6 문자열로 변환하기 때문에 더 유연합니다.
Windows 8.1 및 Windows Server 2012 R2: InetNtopW 함수는 Windows 8.1, Windows Server 2012 R2 이상에서 Windows 스토어 앱에 대해 지원됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8.1, Windows Vista [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | ws2tcpip.h |
라이브러리 | Ws2_32.lib |
DLL | Ws2_32.dll |