다음을 통해 공유


IP_INTERFACE_INFO 구조체(ipexport.h)

IP_INTERFACE_INFO 구조에는 로컬 시스템에서 IPv4를 사용하도록 설정된 네트워크 인터페이스 어댑터 목록이 포함되어 있습니다.

구문

typedef struct _IP_INTERFACE_INFO {
  LONG                 NumAdapters;
  IP_ADAPTER_INDEX_MAP Adapter[1];
} IP_INTERFACE_INFO, *PIP_INTERFACE_INFO;

멤버

NumAdapters

어댑터 멤버가 가리키는 배열에 나열된 어댑터 수입니다.

Adapter[1]

IP_ADAPTER_INDEX_MAP 구조체의 배열입니다. 각 구조체는 어댑터 인덱스 를 해당 어댑터의 이름에 매핑합니다. 어댑터가 비활성화된 후 사용하도록 설정되거나 다른 상황에서 어댑터 인덱스가 변경될 수 있으며 영구로 간주해서는 안 됩니다.

설명

IP_INTERFACE_INFO 구조는 IPv4를 사용하도록 설정된 네트워크 어댑터와 관련이 있습니다. IP_INTERFACE_INFO 구조에는 로컬 시스템에서 IPv4를 사용하도록 설정된 네트워크 어댑터 수와 IPv4가 사용하도록 설정된 각 네트워크 어댑터에 대한 정보가 포함된 IP_ADAPTER_INDEX_MAP 구조의 배열이 포함됩니다. IP_INTERFACE_INFO 구조체는 IP_INTERFACE_INFO 구조체의 NumAdapters 멤버가 IPv4를 사용하는 네트워크 어댑터가 사용하도록 설정되어 있지 않음을 나타내는 경우에도 하나 이상의 IP_ADAPTER_INDEX_MAP 구조를 포함합니다. IP_INTERFACE_INFO 구조체의 NumAdapters 멤버가 0이면 IP_INTERFACE_INFO 구조체에서 반환된 단일 IP_ADAPTER_INDEX_MAP 구조체의 멤버 값이 정의되지 않습니다.

IP_INTERFACE_INFO 구조체는 루프백 인터페이스에 대한 정보를 반환하는 데 사용할 수 없습니다.

Windows Vista 이상에서 IP_INTERFACE_INFO 구조체의 IP_ADAPTER_INDEX_MAP 구조체의 Name 멤버는 네트워크 인터페이스에 대한 GUID의 유니코드 문자열일 수 있습니다(문자열은 '{' 문자로 시작).

이 구조체는 Iphlpapi.h 헤더 파일에 자동으로 포함되는 Ipexport.h 헤더 파일에 정의됩니다. Ipexport.h 헤더 파일은 직접 사용하면 안 됩니다.

예제

다음 예제에서는 로컬 시스템에서 IPv4를 사용하도록 설정된 네트워크 어댑터 목록을 검색하고 첫 번째 어댑터의 다양한 속성을 출력합니다.

// Declare and initialize variables
PIP_INTERFACE_INFO pInfo;
pInfo = (IP_INTERFACE_INFO *) malloc( sizeof(IP_INTERFACE_INFO) );
ULONG ulOutBufLen = 0;
DWORD dwRetVal = 0;


// Make an initial call to GetInterfaceInfo to get
// the necessary size in the ulOutBufLen variable
if ( GetInterfaceInfo(pInfo, &ulOutBufLen) == ERROR_INSUFFICIENT_BUFFER) {
  free(pInfo);
  pInfo = (IP_INTERFACE_INFO *) malloc (ulOutBufLen);
}

// Make a second call to GetInterfaceInfo to get
// the actual data we need
if ((dwRetVal = GetInterfaceInfo(pInfo, &ulOutBufLen)) == NO_ERROR ) {
  printf("\tAdapter Name: %ws\n", pInfo->Adapter[0].Name);
  printf("\tAdapter Index: %ld\n", pInfo->Adapter[0].Index);
  printf("\tNum Adapters: %ld\n", pInfo->NumAdapters);

  // free memory allocated
  free(pInfo);
  pInfo = NULL;
}  
else if (dwRetVal == ERROR_NO_DATA) {
  printf("There are no network adapters with IPv4 enabled on the local system\n");
}

else {
  printf("GetInterfaceInfo failed.\n");
  LPVOID lpMsgBuf;
            
  if (FormatMessage( 
    FORMAT_MESSAGE_ALLOCATE_BUFFER | 
    FORMAT_MESSAGE_FROM_SYSTEM | 
    FORMAT_MESSAGE_IGNORE_INSERTS,
    NULL,
    dwRetVal,
    MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
    (LPTSTR) &lpMsgBuf,
    0,
    NULL ))  {
    printf("\tError: %s", lpMsgBuf);
  }
  LocalFree( lpMsgBuf );
}

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
머리글 ipexport.h(Iphlpapi.h 포함)

추가 정보

GetInterfaceInfo

IP 도우미 시작 페이지

IP 도우미 구조

IP_ADAPTER_INDEX_MAP