共用方式為


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_INETPF_INET) ,因此可以使用任一個常數。

在 Windows Vista 和更新版本以及 Windows SDK 上,頭文件的組織已變更,而且此成員的可能值定義在 Ws2def.h 頭檔中。 請注意, Ws2def.h 頭文件會自動包含在 Winsock2.h 中,不應直接使用。

目前支援的值 AF_INETAF_INET6,這是 IPv4 和 IPv6 的因特網位址系列格式。

意義
AF_UNSPEC
0
未指定位址系列。
AF_INET
2
因特網通訊協定第 4 版 (IPv4) 位址系列。
AF_INET6
23
因特網通訊協定第 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

意義
RouterDiscoveryDisabled
0
路由器探索已停用。
RouterDiscoveryEnabled
1
已啟用路由器探索。 這是 IPv6 的預設值。
RouterDiscoveryDhcp
2
路由器探索是以 DHCP 為基礎進行設定。 這是 IPv4 的預設值。
RouterDiscoveryUnchanged
-1
當路由器探索的值應該保持不變時,設定IP介面的屬性時,就會使用此值。

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列舉類型的其中一個值。

意義
LinkLocalAlwaysOff
0
請勿使用連結本機 IP 位址。
LinkLocalDelayed
1
只有在沒有其他位址可用時,才使用連結本機 IP 位址。 這是 IPv4 介面的預設設定。
LinkLocalAlwaysOn
2
一律使用連結本機 IP 位址。 這是 IPv6 介面的預設設定。
LinkLocalUnchanged
-1
當連結本機地址行為的值應該保持不變時,設定IP介面的屬性時,就會使用這個值。

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 和更新版本上定義。

FamilyInterfaceLuidInterfaceIndex 成員可唯一識別MIB_IPINTERFACE_ROW專案。

當單播封包抵達主機時,IP 必須判斷封包是否以本機為目的地, (其目的地符合指派給主機介面的位址) 。 遵循弱式主機模型的IP實作會接受任何本機目的地封包,而不論收到封包的介面為何。 如果封包中的目的地位址符合指派給接收封包之介面的位址,則遵循強主機模型的IP實作只會接受本機目的地封包。 弱式主機模型提供更佳的網路連線能力。 不過,它也會讓主機容易遭受多宿主型網路攻擊。

Windows Server 2003 和 Windows XP 中目前的 IPv4 實作會使用弱式主機模型。 在此情況下,所有單播封包都會傳送出具有路由最低計量的介面。

Windows Vista 和更新版本上的 TCP/IP 堆棧同時支援 IPv4 和 IPv6 的強主機模型,且預設會設定為使用強主機模式, (WeakHostReceiveWeakHostSend 成員設定為 FALSE) 。 透過強主機模式,單播封包可以透過將套接字系結至特定介面的來源位址,將套接字傳送出沒有路由最低計量的特定介面。

Windows Vista 和更新版本的 TCP/IP 堆棧可以設定為使用弱式主機模型。

計量是指派給特定網路介面之IP路由的值,可識別使用該路由相關聯的成本。 例如,計量可以根據連結速度、躍點計數或時間延遲來值。 自動計量是 Windows XP 和更新版本上的功能,可針對以連結速度為基礎的本機路由自動設定計量。 默認會啟用自動計量功能, (UseAutomaticMetric 在 Windows XP 和更新版本上設定為 TRUE) 。 也可以手動設定,將特定計量指派給IP路由。

當路由表包含相同目的地的多個路由時,自動計量功能很有用。 例如,具有 10 MB 網路介面和 100 MB 網路介面的電腦具有兩個網路介面上設定的預設閘道。 當 UseAutomaticMetricTRUE時,這項功能可能會強制所有以因特網為目標的流量,例如,使用可用的最快網路介面。

計量成員中指定的介面計量只代表介面的計量。 完整路由計量是這個介面計量的組合,此計量會新增至此介面上所指定路由專案之MIB_IPFORWARD_ROW2結構中指定之路由計量位移。

不具特殊許可權同時存取不同安全性需求的多個網路會建立安全性漏洞,並允許不具特殊許可權的應用程式意外在兩個網路之間轉寄數據。 典型的範例是同時存取虛擬專用網 (VPN) 和因特網。 Windows Server 2003 和 Windows XP 會使用弱式主機模型,其中 RAS 會藉由透過其他介面增加所有預設路由的路由計量來防止這類同時存取。 因此,所有流量都會透過 VPN 介面路由傳送,因而中斷其他網路連線。

在 Windows Vista 和更新版本上,預設會使用強主機模型。 如果使用 GetBestRoute2GetBestRoute 在路由查閱中指定來源 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)

另請參閱

GetBestRoute

GetBestRoute2

GetIpInterfaceEntry

GetIpInterfaceTable

MIB_IPFORWARD_ROW2

MIB_IPINTERFACE_TABLE

NET_LUID

NL_INTERFACE_OFFLOAD_ROD

SetIpInterfaceEntry