ResolveIpNetEntry2 函式 (netioapi.h)
ResolveIpNetEntry2 函式會解析本機計算機上鄰近IP位址項目的實體位址。
語法
IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API ResolveIpNetEntry2(
[in, out] PMIB_IPNET_ROW2 Row,
[in, optional] const SOCKADDR_INET *SourceAddress
);
參數
[in, out] Row
鄰近IP位址專案的 MIB_IPNET_ROW2 結構專案的指標。 成功傳回時,此結構將會更新為鄰近IP位址的屬性。
[in, optional] SourceAddress
選擇性來源IP位址的指標,用來選取介面以傳送鄰近IP位址專案的要求。
傳回值
如果函式成功,傳回值會NO_ERROR。
如果函式失敗,傳回值就是下列其中一個錯誤碼。
傳回碼 | Description |
---|---|
|
找不到網路名稱。 如果無法連線到具有鄰近IP位址的網路,就會傳回此錯誤。 |
|
無效的參數已傳遞至 函式。 如果在 Row 參數中傳遞 NULL 指標、Row 參數所指向之MIB_IPNET_ROW2的 Address 成員未設定為有效的 IPv4 或 IPv6 位址,或是未指定 Row 參數所指向之MIB_IPNET_ROW2的 InterfaceLuid 或 InterfaceIndex 成員,就會傳回此錯誤。 如果在 Address 成員中傳遞回送位址,也會傳回此錯誤。 |
|
找不到指定的介面。 如果找不到 Row 參數所指向之MIB_IPNET_ROW2的 InterfaceLuid 或 InterfaceIndex 成員所指定的網路介面,就會傳回此錯誤。 |
|
不支援此要求。 如果本機計算機上沒有IPv4堆棧,而且已在Row參數所指向之MIB_IPNET_ROW2的Address成員中指定IPv4位址,或本機計算機上沒有IPv6堆棧,且地址成員中指定了IPv6位址,則會傳回此錯誤。 |
|
使用 FormatMessage 取得傳回錯誤的訊息字串。 |
備註
ResolveIpNetEntry2 函式是在 Windows Vista 和更新版本上定義。
ResolveIpNetEntry2 函式是用來解析本機計算機上鄰近IP位址專案的實體位址。 此函式會排清介面上IP位址相符的任何現有鄰近專案,然後藉由傳送IPv4位址的ARP要求或IPv6位址的芳鄰要求要求,將實體位址解析 (MAC) 位址。 如果指定 SourceAddress 參數, ResolveIpNetEntry2 函式會選取具有此來源 IP 位址的介面,以傳送要求。 如果未指定 SourceAddress 參數, (此參數中傳遞NULL ) ,ResolveIpNetEntry2 函式會自動選取要傳送要求的最佳介面。
Row 參數所指向之MIB_IPNET_ROW2結構中的 Address 成員必須初始化為有效的 IPv4 或 IPv6 位址和系列。 此外,指向 Row 參數之MIB_IPNET_ROW2結構中至少有一個下列成員必須初始化為 介面:InterfaceLuid 或 InterfaceIndex。
欄位會依照上面所列的順序使用。 因此,如果指定 InterfaceLuid ,則會使用此成員來判斷要新增單播 IP 位址的介面。 如果未為 InterfaceLuid 成員設定任何值, (此成員的值設定為零) ,則下一步會使用 InterfaceIndex 成員來判斷介面。
如果 Row 參數所指向之MIB_IPNET_ROW2地址成員中傳遞的 IP 位址是介面上現有鄰近 IP 位址的重複專案,ResolveIpNetEntry2 函式會在解析 IP 位址之前排清現有的專案。
呼叫成功時,ResolveIpNetEntry2 會在輸出中擷取鄰近IP位址的其他屬性,並填入Row參數所指向的MIB_IPNET_ROW2結構。 Row 參數所指向之MIB_IPNET_ROW2結構中的 PhysicalAddress 和 PhysicalAddressLength 成員將會初始化為有效的實體位址。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | netioapi.h (包括 Iphlpapi.h) |
程式庫 | Iphlpapi.lib |
Dll | Iphlpapi.dll |