다음을 통해 공유


ParseNetworkString 함수(iphlpapi.h)

ParseNetworkString 함수는 입력 네트워크 문자열을 구문 분석하고 지정된 IP 네트워크 문자열 형식의 법적 표현인지 확인합니다. 문자열이 형식 및 해당 사양과 일치하는 경우 함수는 선택적으로 구문 분석된 결과를 반환할 수 있습니다.

구문

IPHLPAPI_DLL_LINKAGE DWORD ParseNetworkString(
  [in]            const WCHAR       *NetworkString,
  [in]            DWORD             Types,
  [out, optional] PNET_ADDRESS_INFO AddressInfo,
  [out, optional] USHORT            *PortNumber,
  [out, optional] BYTE              *PrefixLength
);

매개 변수

[in] NetworkString

구문 분석할 NULL로 종료된 네트워크 문자열에 대한 포인터입니다.

[in] Types

구문 분석할 IP 네트워크 문자열의 형식입니다. 이 매개 변수는 Iphlpapi.h 헤더 파일에 정의된 네트워크 문자열 형식 중 하나로 구성됩니다.

의미
NET_STRING_IPV4_ADDRESS
0x00000001
NetworkString 매개 변수는 인터넷 표준 점선 소수점 표기법을 사용하여 IPv4 주소를 가리킵니다. 네트워크 포트 또는 접두사는 네트워크 문자열에 없어야 합니다.

네트워크 문자열의 예는 다음과 같습니다.

192.168.100.10

NET_STRING_IPV4_SERVICE
0x00000002
NetworkString 매개 변수는 인터넷 표준 점선 소수점 표기법을 사용하여 IPv4 서비스를 가리킵니다. 네트워크 포트는 네트워크 문자열의 일부로 필요합니다. 접두사는 네트워크 문자열에 없어야 합니다.

네트워크 문자열의 예는 다음과 같습니다.

192.168.100.10:80

NET_STRING_IPV4_NETWORK
0x00000004
NetworkString 매개 변수는 인터넷 표준 점선 소수점 표기법을 사용하여 IPv4 네트워크를 가리킵니다. CIDR(Classless Inter-Domain Routing) 표기법을 사용하는 네트워크 접두사는 네트워크 문자열의 일부로 필요합니다. 네트워크 포트는 네트워크 문자열에 없어야 합니다.

네트워크 문자열의 예는 다음과 같습니다.

192.168.100/24

NET_STRING_IPV6_ADDRESS
0x00000008
NetworkString 매개 변수는 인터넷 표준 16진수 인코딩을 사용하여 IPv6 주소를 가리킵니다. IPv6 scope ID가 네트워크 문자열에 있을 수 있습니다. 네트워크 포트 또는 접두사는 네트워크 문자열에 없어야 합니다.

네트워크 문자열의 예는 다음과 같습니다.

21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A%2

NET_STRING_IPV6_ADDRESS_NO_SCOPE
0x00000008
NetworkString 매개 변수는 인터넷 표준 16진수 인코딩을 사용하여 IPv6 주소를 가리킵니다. IPv6 scope ID는 네트워크 문자열에 없어야 합니다. 네트워크 포트 또는 접두사는 네트워크 문자열에 없어야 합니다.

네트워크 문자열의 예는 다음과 같습니다.

21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A

NET_STRING_IPV6_SERVICE
0x00000020
NetworkString 매개 변수는 인터넷 표준 16진수 인코딩을 사용하여 IPv6 서비스를 가리킵니다. 네트워크 포트는 네트워크 문자열의 일부로 필요합니다. IPv6 scope ID가 네트워크 문자열에 있을 수 있습니다. 접두사는 네트워크 문자열에 없어야 합니다.

scope ID가 있는 네트워크 문자열의 예는 다음과 같습니다.

[21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A%2]:8080

NET_STRING_IPV6_SERVICE_NO_SCOPE
0x00000040
NetworkString 매개 변수는 인터넷 표준 16진수 인코딩을 사용하여 IPv6 서비스를 가리킵니다. 네트워크 포트는 네트워크 문자열의 일부로 필요합니다. IPv6 scope ID는 네트워크 문자열에 없어야 합니다. 접두사는 네트워크 문자열에 없어야 합니다.

네트워크 문자열의 예는 다음과 같습니다.

21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A:8080

NET_STRING_IPV6_NETWORK
0x00000080
NetworkString 매개 변수는 인터넷 표준 16진수 인코딩을 사용하여 IPv6 네트워크를 가리킵니다. 네트워크 문자열의 일부로 CIDR 표기법의 네트워크 접두사가 필요합니다. 네트워크 포트 또는 scope ID는 네트워크 문자열에 없어야 합니다.

네트워크 문자열의 예는 다음과 같습니다.

21DA:D3::/48

NET_STRING_NAMED_ADDRESS
0x00000100
NetworkString 매개 변수는 DNS(Domain Name System) 이름을 사용하여 인터넷 주소를 가리킵니다. 네트워크 포트 또는 접두사는 네트워크 문자열에 없어야 합니다.

네트워크 문자열의 예는 다음과 같습니다.

www.microsoft.com

NET_STRING_NAMED_SERVICE
0x00000200
NetworkString 매개 변수는 DNS 이름을 사용하여 인터넷 서비스를 가리킵니다. 네트워크 포트는 네트워크 문자열에 있어야 합니다.

네트워크 문자열의 예는 다음과 같습니다.

www.microsoft.com:80

NET_STRING_IP_ADDRESS
0x00000009
NetworkString 매개 변수는 인터넷 표준 점선 소수점 표기법을 사용하는 IPv4 주소 또는 인터넷 표준 16진수 인코딩을 사용하는 IPv6 주소를 가리킵니다. IPv6 scope ID가 네트워크 문자열에 있을 수 있습니다. 네트워크 포트 또는 접두사는 네트워크 문자열에 없어야 합니다.

이 형식은 NET_STRING_IPV4_ADDRESS 또는 NET_STRING_IPV6_ADDRESS 형식과 일치합니다.

NET_STRING_IP_ADDRESS_NO_SCOPE
0x00000011
NetworkString 매개 변수는 인터넷 표준 점선 소수점 표기법을 사용하는 IPv4 주소 또는 인터넷 표준 16진수 인코딩을 사용하는 IPv6 주소를 가리킵니다. IPv6 scope ID는 네트워크 문자열에 없어야 합니다. 네트워크 포트 또는 접두사는 네트워크 문자열에 없어야 합니다.

이 형식은 NET_STRING_IPV4_ADDRESS 또는 NET_STRING_IPV6_ADDRESS_NO_SCOPE 형식과 일치합니다.

NET_STRING_IP_SERVICE
0x00000022
NetworkString 매개 변수는 IPv4 서비스 또는 IPv6 서비스를 가리킵니다. 네트워크 포트는 네트워크 문자열의 일부로 필요합니다. IPv6 scope ID가 네트워크 문자열에 있을 수 있습니다. 접두사는 네트워크 문자열에 없어야 합니다.

이 형식은 NET_STRING_IPV4_SERVICE 또는 NET_STRING_IPV6_SERVICE 형식과 일치합니다.

NET_STRING_IP_SERVICE_NO_SCOPE
0x00000042
NetworkString 매개 변수는 IPv4 서비스 또는 IPv6 서비스를 가리킵니다. 네트워크 포트는 네트워크 문자열의 일부로 필요합니다. IPv6 scope ID는 네트워크 문자열에 없어야 합니다. 접두사는 네트워크 문자열에 없어야 합니다.

이 형식은 NET_STRING_IPV4_SERVICE 또는 NET_STRING_IPV6_SERVICE_NO_SCOPE 형식과 일치합니다.

NET_STRING_IP_NETWORK
0x00000084
NetworkString 매개 변수는 IPv4 또는 IPv6 네트워크를 가리킵니다. 네트워크 문자열의 일부로 CIDR 표기법의 네트워크 접두사가 필요합니다. 네트워크 포트 또는 scope ID는 네트워크에 없어야 합니다.

이 형식은 NET_STRING_IPV4_NETWORK 또는 NET_STRING_IPV6_NETWORK 형식과 일치합니다.

NET_STRING_ANY_ADDRESS
0x00000209
NetworkString 매개 변수는 인터넷 표준 점선 소수점 표기법의 IPv4 주소, 인터넷 표준 16진수 인코딩의 IPv6 주소 또는 DNS 이름을 가리킵니다. IPv6 주소의 네트워크 문자열에 IPv6 scope ID가 있을 수 있습니다. 네트워크 포트 또는 접두사는 네트워크 문자열에 없어야 합니다.

이 형식은 NET_STRING_NAMED_ADDRESS 또는 NET_STRING_IP_ADDRESS 형식과 일치합니다.

NET_STRING_ANY_ADDRESS_NO_SCOPE
0x00000211
NetworkString 매개 변수는 인터넷 표준 점선 소수점 표기법의 IPv4 주소, 인터넷 표준 16진수 인코딩의 IPv6 주소 또는 DNS 이름을 가리킵니다. IPv6 주소의 네트워크 문자열에 IPv6 scope ID가 없어야 합니다. 네트워크 포트 또는 접두사는 네트워크 문자열에 없어야 합니다.

이 형식은 NET_STRING_NAMED_ADDRESS 또는 NET_STRING_IP_ADDRESS_NO_SCOPE 형식과 일치합니다.

NET_STRING_ANY_SERVICE
0x00000222
NetworkString 매개 변수는 IP 주소 표기법 또는 DNS 이름을 사용하여 IPv4 서비스 또는 IPv6 서비스를 가리킵니다. 네트워크 포트는 네트워크 문자열의 일부로 필요합니다. IPv6 scope ID가 네트워크 문자열에 있을 수 있습니다. 접두사는 네트워크 문자열에 없어야 합니다.

이 형식은 NET_STRING_NAMED_SERVICE 또는 NET_STRING_IP_SERVICE 형식과 일치합니다.

NET_STRING_ANY_SERVICE_NO_SCOPE
0x00000242
NetworkString 매개 변수는 IP 주소 표기법 또는 DNS 이름을 사용하여 IPv4 서비스 또는 IPv6 서비스를 가리킵니다. 네트워크 포트는 네트워크 문자열의 일부로 필요합니다. IPv6 scope ID는 네트워크 문자열에 없어야 합니다. 접두사는 네트워크 문자열에 없어야 합니다.

이 형식은 NET_STRING_NAMED_SERVICE 또는 NET_STRING_IP_SERVICE_NO_SCOPE 형식과 일치합니다.

[out, optional] AddressInfo

성공하면 함수는 NULL 포인터가 이 매개 변수에 전달되지 않은 경우 구문 분석된 IP 주소 정보를 포함하는 NET_ADDRESS_INFO 구조체에 대한 포인터를 반환합니다.

[out, optional] PortNumber

성공하면 NULL 포인터가 이 매개 변수에 전달되지 않은 경우 함수는 구문 분석된 네트워크 포트에 대한 포인터를 호스트 순서로 반환합니다. NetworkString 매개 변수에 네트워크 포트가 없으면 값 0에 대한 포인터가 반환됩니다.

[out, optional] PrefixLength

성공하면 NULL 포인터가 이 매개 변수에 전달되지 않은 경우 함수는 구문 분석된 접두사 길이에 대한 포인터를 반환합니다. NetworkString 매개 변수에 접두사가 없으면 -1 값에 대한 포인터가 반환됩니다.

반환 값

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

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

반환 코드 설명
ERROR_INSUFFICIENT_BUFFER
함수에 전달된 버퍼가 너무 작습니다. 이 오류는 AddressInfo 매개 변수가 가리키는 버퍼가 너무 작아서 구문 분석된 네트워크 주소를 보유하지 못하면 반환됩니다.
ERROR_INVALID_PARAMETER
잘못된 매개 변수가 함수에 전달되었습니다. NetworkString 매개 변수에 NULL 포인터가 전달되면 이 오류가 반환됩니다.

설명

ParseNetworkString 함수는 NetworkString 매개 변수에 전달된 입력 네트워크 문자열을 구문 분석하고 Types 인수에 지정된 문자열 형식 중 하나의 법적 표현인지 확인합니다. 문자열이 형식 및 해당 사양과 일치하는 경우 함수는 성공하고 이러한 매개 변수가 NULL 포인터가 아닌 경우 선택적으로 구문 분석된 결과를 선택적 AddressInfo, PortNumberPrefixLength 매개 변수의 호출자에게 반환할 수 있습니다.

ParseNetworkString 함수는 DNS 이름을 사용하여 명명된 인터넷 주소 및 서비스뿐만 아니라 IPv4 또는 IPv6 주소, 서비스 및 네트워크의 표현을 구문 분석할 수 있습니다.

AddressInfo 매개 변수가 가리키는 NET_ADDRESS_INFO 구조체입니다. SOCKADDR_IN 및 SOCKADDR 구조체는 Winsock2.h 헤더 파일에 의해 자동으로 포함되는 Ws2def.h 헤더 파일에 정의됩니다. SOCKADDR_IN6 구조체는 Ws2tcpip.h 헤더 파일에 의해 자동으로 포함되는 Ws2ipdef.h 헤더 파일에 정의됩니다. ParseNetworkString 함수와 NET_ADDRESS_INFO 구조를 사용하려면 Iphlpapi.h 헤더 파일 앞에 Winsock2.hWs2tcpip.h 헤더 파일을 포함해야 합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 iphlpapi.h
라이브러리 Iphlpapi.lib
DLL Iphlpapi.dll

참고 항목

NET_ADDRESS_FORMAT

NET_ADDRESS_INFO

SOCKADDR

SOCKADDR_IN

SOCKADDR_IN6