다음을 통해 공유


GetIpInterfaceEntry 함수(netioapi.h)

GetIpInterfaceEntry 함수는 로컬 컴퓨터에서 지정된 인터페이스에 대한 IP 정보를 검색합니다.

구문

IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API GetIpInterfaceEntry(
  [in, out] PMIB_IPINTERFACE_ROW Row
);

매개 변수

[in, out] Row

반환이 성공하면 로컬 컴퓨터의 인터페이스에 대한 정보를 수신하는 MIB_IPINTERFACE_ROW 구조체에 대한 포인터입니다. 입력 시 MIB_IPINTERFACE_ROWInterfaceLuid 또는 InterfaceIndex 멤버를 정보를 검색할 인터페이스로 설정해야 합니다.

반환 값

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

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

반환 코드 설명
ERROR_FILE_NOT_FOUND
시스템은 지정된 파일을 찾을 수 없습니다. Row 매개 변수가 가리키는 MIB_IPINTERFACE_ROWInterfaceLuid 또는 InterfaceIndex 멤버가 지정한 네트워크 인터페이스 LUID 또는 인터페이스 인덱스가 로컬 컴퓨터의 값이 아닌 경우 이 오류가 반환됩니다.
ERROR_INVALID_PARAMETER
잘못된 매개 변수가 함수에 전달되었습니다. 이 오류는 Row 매개 변수에 NULL 포인터가 전달되거나 Row 매개 변수가 가리키는 MIB_IPINTERFACE_ROWFamily 멤버가 AF_INET 또는 AF_INET6 지정되지 않았거나 Row 매개 변수가 가리키는 MIB_IPINTERFACE_ROWInterfaceLuid 또는 InterfaceIndex 멤버가 모두 지정되지 않은 경우 반환됩니다.
ERROR_NOT_FOUND
Element not found. Row 매개 변수가 가리키는 MIB_IPINTERFACE_ROW 구조체의 InterfaceLuid 또는 InterfaceIndex 멤버가 지정한 네트워크 인터페이스가 MIB_IPINTERFACE_ROW 구조의 Family 멤버에 지정된 IP 주소 패밀리와 일치하지 않으면 이 오류가 반환됩니다.
기타
FormatMessage 함수를 사용하여 반환된 오류에 대한 메시지 문자열을 가져옵니다.

설명

GetIpInterfaceEntry 함수는 Windows Vista 이상에서 정의됩니다.

입력 시 Row 매개 변수가 가리키는 MIB_IPINTERFACE_ROW 구조의 Family 멤버를 AF_INET 또는 AF_INET6 초기화해야 합니다. 입력 외에도 Row 매개 변수를 가리키는 MIB_IPINTERFACE_ROW 구조체의 다음 멤버 중 하나 이상을 초기화해야 합니다. InterfaceLuid 또는 InterfaceIndex.

필드는 위에 나열된 순서대로 사용됩니다. 따라서 InterfaceLuid 가 지정된 경우 이 멤버를 사용하여 인터페이스를 확인합니다. InterfaceLuid 멤버에 대해 값이 설정되지 않은 경우(이 멤버의 값이 0으로 설정됨) InterfaceIndex 멤버를 사용하여 인터페이스를 확인합니다.

출력에서 InterfaceIndex가 지정된 경우 Row 매개 변수가 가리키는 MIB_IPINTERFACE_ROW 구조체의 InterfaceLuid 멤버가 채워집니다. Row 매개 변수가 가리키는 MIB_IPINTERFACE_ROW 구조체의 다른 멤버도 채워집니다.

InitializeIpInterfaceEntry 함수를 사용하여 기본값으로 MIB_IPINTERFACE_ROW 구조체 항목의 필드를 초기화해야 합니다. 그런 다음 애플리케이션은 수정하려는 MIB_IPINTERFACE_ROW 항목의 필드를 변경한 다음 SetIpInterfaceEntry 함수를 호출할 수 있습니다.

서로 다른 보안 요구 사항의 여러 네트워크에 대한 권한 없는 동시 액세스는 보안 허점을 만들고 권한 없는 애플리케이션이 실수로 두 네트워크 간에 데이터를 릴레이할 수 있도록 합니다. 일반적인 예는 VPN(가상 사설망) 및 인터넷에 대한 동시 액세스입니다. Windows Server 2003 및 Windows XP는 약한 호스트 모델을 사용합니다. 여기서 RAS는 다른 인터페이스를 통해 모든 기본 경로의 경로 메트릭을 늘려 이러한 동시 액세스를 방지합니다. 따라서 모든 트래픽이 VPN 인터페이스를 통해 라우팅되어 다른 네트워크 연결이 중단됩니다.

Windows Vista 이상에서는 기본적으로 강력한 호스트 모델이 사용됩니다. GetBestRoute2 또는 GetBestRoute를 사용하여 경로 조회에 원본 IP 주소를 지정하면 경로 조회가 원본 IP 주소의 인터페이스로 제한됩니다. RAS의 경로 메트릭 수정은 잠재적 경로 목록에 VPN 인터페이스에 대한 경로조차 없으므로 인터넷에 대한 트래픽을 허용하기 때문에 효과가 없습니다. MIB_IPINTERFACE_ROWDisableDefaultRoutes 멤버를 사용하여 인터페이스의 기본 경로를 사용하지 않도록 설정할 수 있습니다. 이 멤버는 VPN 클라이언트에서 분할 터널링이 필요하지 않은 경우 분할 터널링을 제한하기 위해 VPN 클라이언트에서 보안 조치로 사용할 수 있습니다. VPN 클라이언트는 SetIpInterfaceEntry 함수를 호출하여 필요한 경우 DisableDefaultRoutes 멤버를 TRUE 로 설정할 수 있습니다. VPN 클라이언트는 GetIpInterfaceEntry 함수를 호출하여 DisableDefaultRoutes 멤버의 현재 상태를 쿼리할 수 있습니다.

요구 사항

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

추가 정보

GetBestRoute

GetBestRoute2

GetIfEntry2

GetIfTable2

GetIfTable2Ex

GetIpInterfaceTable

IP 도우미 함수 참조

MIB_IF_ROW2

MIB_IF_TABLE2

MIB_IPINTERFACE_ROW

MIB_IPINTERFACE_TABLE

SetIpInterfaceEntry