MIB_IPINTERFACE_ROW結構 (netioapi.h)
MIB_IPINTERFACE_ROW結構會儲存網路介面上特定IP位址系列的介面管理資訊。
語法
typedef struct _MIB_IPINTERFACE_ROW {
ADDRESS_FAMILY Family;
NET_LUID InterfaceLuid;
NET_IFINDEX InterfaceIndex;
ULONG MaxReassemblySize;
ULONG64 InterfaceIdentifier;
ULONG MinRouterAdvertisementInterval;
ULONG MaxRouterAdvertisementInterval;
BOOLEAN AdvertisingEnabled;
BOOLEAN ForwardingEnabled;
BOOLEAN WeakHostSend;
BOOLEAN WeakHostReceive;
BOOLEAN UseAutomaticMetric;
BOOLEAN UseNeighborUnreachabilityDetection;
BOOLEAN ManagedAddressConfigurationSupported;
BOOLEAN OtherStatefulConfigurationSupported;
BOOLEAN AdvertiseDefaultRoute;
NL_ROUTER_DISCOVERY_BEHAVIOR RouterDiscoveryBehavior;
ULONG DadTransmits;
ULONG BaseReachableTime;
ULONG RetransmitTime;
ULONG PathMtuDiscoveryTimeout;
NL_LINK_LOCAL_ADDRESS_BEHAVIOR LinkLocalAddressBehavior;
ULONG LinkLocalAddressTimeout;
ULONG ZoneIndices[ScopeLevelCount];
ULONG SitePrefixLength;
ULONG Metric;
ULONG NlMtu;
BOOLEAN Connected;
BOOLEAN SupportsWakeUpPatterns;
BOOLEAN SupportsNeighborDiscovery;
BOOLEAN SupportsRouterDiscovery;
ULONG ReachableTime;
NL_INTERFACE_OFFLOAD_ROD TransmitOffload;
NL_INTERFACE_OFFLOAD_ROD ReceiveOffload;
BOOLEAN DisableDefaultRoutes;
} MIB_IPINTERFACE_ROW, *PMIB_IPINTERFACE_ROW;
成員
Family
類型: ADDRESS_FAMILY
位址系列。 位址系列的可能值列在 Winsock2.h 頭檔中。 請注意,AF_位址系列和PF_通訊協定系列常數的值 (相同,例如, AF_INET 和 PF_INET) ,因此可以使用任一個常數。
在 Windows Vista 和更新版本以及 Windows SDK 上,頭文件的組織已變更,而且此成員的可能值定義在 Ws2def.h 頭檔中。 請注意, Ws2def.h 頭文件會自動包含在 Winsock2.h 中,不應直接使用。
目前支援的值 AF_INET 或 AF_INET6,這是 IPv4 和 IPv6 的因特網位址系列格式。
值 | 意義 |
---|---|
|
未指定位址系列。 |
|
因特網通訊協定第 4 版 (IPv4) 位址系列。 |
|
因特網通訊協定第 6 版 (IPv6) 位址系列。 |
InterfaceLuid
類型: NET_LUID
網路介面的本機唯一標識碼 (LUID) 。
InterfaceIndex
類型: NET_IFINDEX
網路介面的本機索引值。 當網路適配器停用后啟用或在其他情況下,此索引值可能會變更,且不應視為持續性。
MaxReassemblySize
類型: ULONG
片段IP封包的最大重新組譯大小,以位元組為單位。 此成員目前設定為零,並保留供日後使用。
InterfaceIdentifier
類型: ULONG64
保留供未來使用。 此成員目前設定為零。
MinRouterAdvertisementInterval
類型: ULONG
此IP介面上的最小路由器公告間隔,以毫秒為單位。 此成員預設為 IPv6 的 200。 只有當 AdvertisingEnabled 成員設定為 TRUE 時,此成員才適用。
MaxRouterAdvertisementInterval
類型: ULONG
此IP介面上的路由器公告間隔上限,以毫秒為單位。 此成員預設為 IPv6 的 600。 只有當 AdvertisingEnabled 成員設定為 TRUE 時,此成員才適用。
AdvertisingEnabled
類型: BOOLEAN
值,指出是否在此IP介面上啟用路由器廣告。 IPv6 的預設值是只有在介面設定為做為路由器時,才會啟用路由器公告。 IPv4 的預設值是已停用路由器公告。
ForwardingEnabled
類型: BOOLEAN
值,指出是否在此IP介面上啟用IP轉送。
WeakHostSend
類型: BOOLEAN
值,指出此IP介面上是否啟用弱式主機傳送模式。
WeakHostReceive
類型: BOOLEAN
值,指出此IP介面上是否啟用弱式主機接收模式。
UseAutomaticMetric
類型: BOOLEAN
值,指出IP介面是否使用自動計量。
UseNeighborUnreachabilityDetection
類型: BOOLEAN
值,指出是否在此IP介面上啟用鄰近無法連線偵測。
ManagedAddressConfigurationSupported
類型: BOOLEAN
值,指出IP介面是否支援使用 DHCP 的受控位址設定。
OtherStatefulConfigurationSupported
類型: BOOLEAN
值,指出IP介面是否支援其他具狀態設定 (路由組態,例如) 。
AdvertiseDefaultRoute
類型: BOOLEAN
值,指出IP介面是否公告預設路由。 只有當 AdvertisingEnabled 成員設定為 TRUE 時,此成員才適用。
RouterDiscoveryBehavior
類型: NL_ROUTER_DISCOVERY_BEHAVIOR
路由器探索行為。 這個成員可以是 Nldef.h 頭檔中所定義之NL_ROUTER_DISCOVERY_BEHAVIOR列舉類型的其中一個值。 成員會在 RFC 2461 中描述。 如需詳細資訊,請參閱http://www.ietf.org/rfc/rfc2461.txt。
DadTransmits
類型: ULONG
在暫訂IP單播位址上執行重複位址偵測時所傳送的連續訊息數目。 值為零表示未在暫訂IP位址上執行重複的位址偵測。 一個 值表示沒有後續轉送的單一傳輸。 針對 IPv4,此成員的預設值為 3。 針對 IPv6,此成員的預設值為 1。 針對 IPv6,這些訊息會以芳鄰要求的形式傳送。 此成員定義為 RFC 2462 中的 DupAddrDetectTransmits。 如需詳細資訊,請參閱http://www.ietf.org/rfc/rfc2462.txt。
BaseReachableTime
類型: ULONG
隨機連線時間的基底,以毫秒為單位。 成員會在 RFC 2461 中描述。 如需詳細資訊,請參閱http://www.ietf.org/rfc/rfc2461.txt。
RetransmitTime
類型: ULONG
芳鄰請求逾時,以毫秒為單位。 RFC 2461 會描述成員。 如需詳細資訊,請參閱http://www.ietf.org/rfc/rfc2461.txt。
PathMtuDiscoveryTimeout
類型: ULONG
路徑 MTU 探索逾時,以毫秒為單位。
LinkLocalAddressBehavior
類型: NL_LINK_LOCAL_ADDRESS_BEHAVIOR
連結本機地址行為。 這個成員可以是 Nldef.h 頭檔中所定義NL_LINK_LOCAL_ADDRESS_BEHAVIOR列舉類型的其中一個值。
LinkLocalAddressTimeout
類型: ULONG
連結本機 IP 位址逾時,以毫秒為單位。
ZoneIndices[ScopeLevelCount]
類型: ULONG[ScopeLevelCount]
數位,指定範圍標識碼的區域部分。
SitePrefixLength
類型: ULONG
IP 介面位址的月臺前綴長度,以位為單位。 IP 介面位址之月臺前綴或網路部分的長度,以位為單位。 針對 IPv4 位址,大於 32 的任何值都是不合法的值。 針對 IPv6 位址,大於 128 的任何值都是不合法的值。 值 255 通常用來表示不合法的值。
Metric
類型: ULONG
介面計量。 請注意,用來計算路由喜好設定的實際路由計量是MIB_IPFORWARD_ROW2結構的 Metric 成員所指定的路由計量位移和這個成員中指定的介面計量總和。
NlMtu
類型: ULONG
網路層 MTU 大小,以位元組為單位。
Connected
類型: BOOLEAN
值,指出介面是否已連線到網路存取點。
SupportsWakeUpPatterns
類型: BOOLEAN
值,指定網路介面是否支援網路喚醒。
SupportsNeighborDiscovery
類型: BOOLEAN
值,指定IP介面是否支持鄰近探索。
SupportsRouterDiscovery
類型: BOOLEAN
值,指定IP介面是否支援路由器探索。
ReachableTime
類型: ULONG
可觸達的逾時,以毫秒為單位。
TransmitOffload
類型: NL_INTERFACE_OFFLOAD_ROD
一組旗標,指出IP介面的傳輸卸除功能。 NL_INTERFACE_OFFLOAD_ROD結構定義於 Nldef.h 頭檔中。
ReceiveOffload
類型: NL_INTERFACE_OFFLOAD_ROD
一組旗標,指出IP介面的接收卸除功能。 NL_INTERFACE_OFFLOAD_ROD結構定義於 Nldef.h 頭檔中。
DisableDefaultRoutes
類型: BOOLEAN
值,指出是否應該停用介面上的預設路由。 VPN 用戶端可以使用此成員來限制分割通道。
備註
MIB_IPINTERFACE_ROW結構是在 Windows Vista 和更新版本上定義。
Family、InterfaceLuid 和 InterfaceIndex 成員可唯一識別MIB_IPINTERFACE_ROW專案。
當單播封包抵達主機時,IP 必須判斷封包是否以本機為目的地, (其目的地符合指派給主機介面的位址) 。 遵循弱式主機模型的IP實作會接受任何本機目的地封包,而不論收到封包的介面為何。 如果封包中的目的地位址符合指派給接收封包之介面的位址,則遵循強主機模型的IP實作只會接受本機目的地封包。 弱式主機模型提供更佳的網路連線能力。 不過,它也會讓主機容易遭受多宿主型網路攻擊。
Windows Server 2003 和 Windows XP 中目前的 IPv4 實作會使用弱式主機模型。 在此情況下,所有單播封包都會傳送出具有路由最低計量的介面。
Windows Vista 和更新版本上的 TCP/IP 堆棧同時支援 IPv4 和 IPv6 的強主機模型,且預設會設定為使用強主機模式, (WeakHostReceive 和 WeakHostSend 成員設定為 FALSE) 。 透過強主機模式,單播封包可以透過將套接字系結至特定介面的來源位址,將套接字傳送出沒有路由最低計量的特定介面。
Windows Vista 和更新版本的 TCP/IP 堆棧可以設定為使用弱式主機模型。
計量是指派給特定網路介面之IP路由的值,可識別使用該路由相關聯的成本。 例如,計量可以根據連結速度、躍點計數或時間延遲來值。 自動計量是 Windows XP 和更新版本上的功能,可針對以連結速度為基礎的本機路由自動設定計量。 默認會啟用自動計量功能, (UseAutomaticMetric 在 Windows XP 和更新版本上設定為 TRUE) 。 也可以手動設定,將特定計量指派給IP路由。
當路由表包含相同目的地的多個路由時,自動計量功能很有用。 例如,具有 10 MB 網路介面和 100 MB 網路介面的電腦具有兩個網路介面上設定的預設閘道。 當 UseAutomaticMetric 為 TRUE時,這項功能可能會強制所有以因特網為目標的流量,例如,使用可用的最快網路介面。
計量成員中指定的介面計量只代表介面的計量。 完整路由計量是這個介面計量的組合,此計量會新增至此介面上所指定路由專案之MIB_IPFORWARD_ROW2結構中指定之路由計量位移。
不具特殊許可權同時存取不同安全性需求的多個網路會建立安全性漏洞,並允許不具特殊許可權的應用程式意外在兩個網路之間轉寄數據。 典型的範例是同時存取虛擬專用網 (VPN) 和因特網。 Windows Server 2003 和 Windows XP 會使用弱式主機模型,其中 RAS 會藉由透過其他介面增加所有預設路由的路由計量來防止這類同時存取。 因此,所有流量都會透過 VPN 介面路由傳送,因而中斷其他網路連線。
在 Windows Vista 和更新版本上,預設會使用強主機模型。 如果使用 GetBestRoute2 或 GetBestRoute 在路由查閱中指定來源 IP 位址,路由查閱會限制為來源 IP 位址的介面。 RAS 修改路由計量沒有任何作用,因為潛在路由清單甚至沒有 VPN 介面的路由,因此允許因特網的流量。 MIB_IPINTERFACE_ROW 結構的 DisableDefaultRoutes 成員可用來停用介面上的預設路由。 當 VPN 用戶端不需要分割通道時,此成員可作為 VPN 用戶端的安全性措施,以限制分割通道。 VPN 用戶端可以呼叫 SetIpInterfaceEntry 函式,視需要將 DisableDefaultRoutes 成員設定為 TRUE 。 VPN 用戶端可以藉由呼叫 GetIpInterfaceEntry 函式來查詢 DisableDefaultRoutes 成員的目前狀態。
請注意, Netioapi.h 頭文件會自動包含在 Iphlpapi.h 頭檔中。 不應該直接使用 Netioapi.h 頭檔。
範例
若要檢視擷取 MIB_IPINTERFACE_TABLE 結構的範例,然後列印出此表格 中MIB_IPINTERFACE_ROW 結構專案的幾個成員,請參閱 GetIpInterfaceTable 函式。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
標頭 | netioapi.h (包括 Iphlpapi.h) |