共用方式為


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_ADAPTER_INDEX_MAP結構,即使IP_INTERFACE_INFO結構的 NumAdapters 成員表示未啟用任何具有 IPv4 的網路適配器。 當IP_INTERFACE_INFO結構的 NumAdapters 成員為零時,未定義IP_INTERFACE_INFO結構中所傳回之單一IP_ADAPTER_INDEX_MAP結構的成員值

IP_INTERFACE_INFO 結構無法用來傳回回送介面的相關信息。

在 Windows Vista 和更新版本上,IP_INTERFACE_INFO 結構中IP_ADAPTER_INDEX_MAP結構的 Name 成員可能是網路介面的 Unicode 字串串, (字串開頭為 '{' 字元) 。

此結構定義於 Ipexport.h 頭檔中,該標頭檔會自動包含在 Iphlpapi.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 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
標頭 ipexport.h (包含 Iphlpapi.h)

另請參閱

GetInterfaceInfo

IP 協助程式起始頁

IP 協助程序結構

IP_ADAPTER_INDEX_MAP