다음을 통해 공유


InetPtonW 함수(ws2tcpip.h)

InetPton 함수는 표준 텍스트 프레젠테이션 형식의 IPv4 또는 IPv6 인터넷 네트워크 주소를 숫자 이진 형식으로 변환합니다. 이 함수의 ANSI 버전은 inet_pton.

구문

INT WSAAPI InetPtonW(
  [in]  INT    Family,
  [in]  PCWSTR pszAddrString,
  [out] PVOID  pAddrBuf
);

매개 변수

[in] Family

주소 패밀리입니다.

주소 패밀리에 사용할 수 있는 값은 Ws2def.h 헤더 파일에 정의되어 있습니다. Ws2def.h 헤더 파일은 Winsock2.h에 자동으로 포함되며 직접 사용하면 안 됩니다. AF_ 주소 패밀리 및 PF_ 프로토콜 패밀리 상수의 값은 동일하므로(예: AF_INETPF_INET) 두 상수를 모두 사용할 수 있습니다.

현재 지원되는 값은 AF_INETAF_INET6.

의미
AF_INET
2
IPv4(인터넷 프로토콜 버전 4) 주소 패밀리입니다. 이 매개 변수를 지정하면 pszAddrString 매개 변수는 IPv4 주소의 텍스트 표현을 가리킨 다음 pAddrBuf 매개 변수는 IPv4 주소를 나타내는 IN_ADDR 구조체에 대한 포인터를 반환합니다.
AF_INET6
23
IPv6(인터넷 프로토콜 버전 6) 주소 패밀리입니다. 이 매개 변수를 지정하면 pszAddrString 매개 변수는 IPv6 주소의 텍스트 표현을 가리킨 다음 pAddrBuf 매개 변수는 IPv6 주소를 나타내는 IN6_ADDR 구조체에 대한 포인터를 반환합니다.

[in] pszAddrString

숫자 이진 형식으로 변환할 IP 주소의 텍스트 표현을 포함하는 NULL로 끝나는 문자열에 대한 포인터입니다.

Family 매개 변수가 AF_INET경우 pszAddrString 매개 변수는 표준 점선 소수점 표기법으로 IPv4 주소의 텍스트 표현을 가리킵니다.

Family 매개 변수가 AF_INET6경우 pszAddrString 매개 변수는 표준 표기법으로 IPv6 주소의 텍스트 표현을 가리킵니다.

[out] pAddrBuf

IP 주소의 숫자 이진 표현을 저장할 버퍼에 대한 포인터입니다. IP 주소는 네트워크 바이트 순서로 반환됩니다.

Family 매개 변수가 AF_INET 경우 이 버퍼는 IN_ADDR 구조를 보유할 수 있을 만큼 커야 합니다.

Family 매개 변수가 AF_INET6 경우 이 버퍼는 IN6_ADDR 구조를 보유할 수 있을 만큼 커야 합니다.

반환 값

오류가 발생하지 않으면 InetPton 함수는 값 1을 반환하고 pAddrBuf 매개 변수가 가리키는 버퍼에는 네트워크 바이트 순서로 이진 숫자 IP 주소가 포함됩니다.

InetPton 함수는 pAddrBuf 매개 변수가 유효한 IPv4 점선 10진수 문자열 또는 유효한 IPv6 주소 문자열이 아닌 문자열을 가리키는 경우 값 0을 반환합니다. 그렇지 않으면 -1 값이 반환되고 를 호출하여 특정 오류 코드를 검색할 수 있습니다.
확장 오류 정보에 대한 WSAGetLastError입니다.

함수에 오류가 있는 경우 WSAGetLastError 에서 반환된 확장 오류 코드는 다음 값 중 하나일 수 있습니다.

오류 코드 의미
WSAEAFNOSUPPORT
Family 매개 변수에 지정된 주소 패밀리 는 지원되지 않습니다. 지정한 Family 매개 변수가 AF_INET 또는AF_INET6 않은 경우 이 오류가 반환됩니다.
WSAEFAULT
pszAddrString 또는 pAddrBuf 매개 변수는 NULL이거나 사용자 주소 공간의 일부가 아닙니다.

설명

InetPton 함수는 Windows Vista 이상에서 지원됩니다.

InetPton 함수는 표준 텍스트 프레젠테이션 형식의 인터넷 네트워크 주소를 숫자 이진 형식으로 프로토콜 독립적 변환을 제공합니다. InetPton 함수는 pszAddrString 매개 변수가 가리키는 인터넷 주소의 텍스트 표현을 사용하고 pAddrBuf 매개 변수의 숫자 이진 IP 주소에 대한 포인터를 반환합니다. inet_addr 함수는 IPv4 주소 문자열에서만 작동하지만 InetPton 함수는 IPv4 또는 IPv6 주소 문자열에서 작동합니다.

이 함수의 ANSI 버전은 RFC 2553에 정의된 대로 inet_pton . 자세한 내용은 IETF 웹 사이트에서 제공되는 RFC 2553을 참조하세요.

InetPton 함수는 IP 주소를 나타내는 텍스트 문자열을 숫자 이진 IP 주소로 변환하기 위해 Windows 소켓 DLL을 로드할 필요가 없습니다.

지정한 Family 매개 변수가 AF_INET 경우 pszAddrString 매개 변수는 점선 소수점 표기법의 IPv4 주소의 텍스트 문자열을 점선 10진수 표기법의 "192.168.16.0"에서와 같이 가리킵니다.

지정한 Family 매개 변수가 AF_INET6 경우 pszAddrString 매개 변수는 인터넷 표준 형식으로 IPv6 주소의 텍스트 문자열을 가리킵니다. 기본 문자열 표현은 콜론으로 구분된 8개의 16진수 숫자로 구성됩니다. 연속된 0개의 숫자 문자열을 double-colon으로 바꿀 수 있습니다. IPv6 주소의 문자열 표현에는 이중 콜론이 하나만 있을 수 있습니다. 주소가 IPv4 호환 주소인 경우 마지막 32비트는 IPv4 스타일 점선 옥텟 표기법으로 표시될 수 있습니다.

UNICODE 또는 _UNICODE 정의되면 InetPton 은 이 함수의 유니코드 버전인 InetPtonW에 정의됩니다. pszAddrString 매개 변수는 PCWSTR 데이터 형식에 정의됩니다.

UNICODE 또는 _UNICODE 정의되지 않은 경우 InetPton 은 이 함수의 ANSI 버전인 InetPtonA에 정의됩니다. 이 함수의 ANSI 버전은 항상 inet_pton 정의됩니다. pszAddrString 매개 변수는 PCSTR 데이터 형식에 정의됩니다.

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

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

Windows Vista 이상에서는 RtlIpv4StringToAddressRtlIpv4StringToAddressEx 함수를 사용하여 인터넷 표준 점선 소수점 표기법의 IPv4 주소의 텍스트 표현을 IN_ADDR 구조체로 표시되는 숫자 이진 주소로 변환할 수 있습니다. Windows Vista 이상에서는 RtlIpv6StringToAddressRtlIpv6StringToAddressEx 함수를 사용하여 IPv6 주소의 문자열 표현을 IN6_ADDR 구조체로 표현된 숫자 이진 IPv6 주소로 변환할 수 있습니다. RtlIpv6StringToAddressEx 함수는 표준 표기법으로 scope ID 및 포트를 포함할 수 있는 IPv6 주소의 문자열 표현을 숫자 이진 형식으로 변환하기 때문에 더 유연합니다.

Windows 8.1Windows Server 2012 R2: InetPtonW 함수는 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

추가 정보

IN6_ADDR

IN_ADDR

InetNtop

RtlIpv4AddressToString

RtlIpv4AddressToStringEx

RtlIpv4StringToAddress

RtlIpv4StringToAddressEx

RtlIpv6AddressToString

RtlIpv6AddressToStringEx

RtlIpv6StringToAddress

RtlIpv6StringToAddressEx

inet_addr

inet_ntoa