共用方式為


MIB_IPNET_ROW2 結構 (netioapi.h)

MIB_IPNET_ROW2結構儲存鄰居 IP 位址的資訊。

語法

typedef struct _MIB_IPNET_ROW2 {
  SOCKADDR_INET     Address;
  NET_IFINDEX       InterfaceIndex;
  NET_LUID          InterfaceLuid;
  UCHAR             PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH];
  ULONG             PhysicalAddressLength;
  NL_NEIGHBOR_STATE State;
  union {
    struct {
      BOOLEAN IsRouter : 1;
      BOOLEAN IsUnreachable : 1;
    };
    UCHAR Flags;
  };
  union {
    ULONG LastReachable;
    ULONG LastUnreachable;
  } ReachabilityTime;
} MIB_IPNET_ROW2, *PMIB_IPNET_ROW2;

Members

Address

類型: SOCKADDR_INET

鄰居的 IP 位址。 此成員可以是 IPv6 位址或 IPv4 位址。

InterfaceIndex

類型: NET_IFINDEX

與此 IP 位址相關的網路介面的本地索引值。 當網路介面卡被停用後啟用,或在其他情況下,這個索引值可能會改變,因此不應被視為持久的。

InterfaceLuid

類型: NET_LUID

與此 IP 位址相關的網路介面的本地唯一識別碼(LUID)。

PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]

類型: UCHAR[IF_MAX_PHYS_ADDRESS_LENGTH]

與此 IP 位址相關的網路介面的介面卡實體硬體位址。

PhysicalAddressLength

類型: ULONG

PhysicalAddress 成員指定的實體硬體位址長度(位元組)。 最大支援的值為 32 位元組。

State

類型: NL_NEIGHBOR_STATE

網路鄰居 IP 位址的狀態,定義於 RFC 2461,第 7.3.2 節。 如需詳細資訊,請參閱http://www.ietf.org/rfc/rfc2461.txt。 此成員可為 Nldef.h 標頭檔案中定義的NL_NEIGHBOR_STATE列舉型態中的值之一。

價值觀 Meaning
Nlns無法聯繫
IP 位址無法連通。
NlnsIncomplete(不完整)
位址解析正在進行中,鄰居的連結層位址尚未確定。 針對 IPv6,已向目標節點的邀請節點多播 IP 位址發送鄰居徵求,但對應的鄰居廣告尚未收到。
Nlns探測器
鄰居已不再被確認可達,並已派探測器確認可達性。 對於 IPv6,會透過定期重傳單播鄰居索取探測,直到收到可達性確認,積極尋求可達性確認。
Nlns延遲
鄰居已無法聯繫,且最近已將流量發送給鄰居。 不過,與其立即探測鄰居,不如暫時延遲發送探測,讓上層協定有機會提供可達性確認。 對於 IPv6,自從最後一次收到前向路徑正常運作的正面確認並發送封包以來,已經過的時間比 ReachabilityTime.ReachableTime 成員中指定的時間還長。 若在進入 NlnsDelay 狀態後一段時間內(用於延遲第一個探測器)未收到可達性確認,則會發送鄰居請求,並將 該州 成員改為 NlnsProbe
NlnsStale
鄰居已不再被確認可達,但在流量傳送給鄰居之前,不應嘗試驗證其可達性。 對於 IPv6,自最後一次收到前向路徑正常運作的正面確認以來,已經過的時間超過 ReachabilityTime.ReachableTime 成員所指定的時間。 在 NlnsStale 狀態下,直到封包被傳送前不會有任何行動。

NlnsStale 狀態是在收到一則未經請求的鄰居發現訊息時進入,該訊息會更新快取的 IP 位址。 收到此類訊息並不代表可達性,輸入 NlnsStale 狀態可確保若條目實際使用,可快速驗證可達性。 然而,直到條目實際使用時,才能真正驗證可達性。

Nlns可達
鄰居最近(幾十秒前)確實有聯絡過。 對於 IPv6,在 ReachabilityTime.ReachableTime 成員指定的時間內,會收到正向確認,表示鄰居的前向路徑正常運作。 當 StateNlnsReachable(可達狀態)時,封包傳送時不會有特殊操作。
Nlns永久
IP 位址是永久性的。
Nlns極限
NL_NEIGHBOR_STATE列舉類型的最大可能值。 這並非 議員的法律價值。

IsRouter

類型: 布林值

一個表示該 IP 位址是否為路由器的值。

IsUnreachable

類型: 布林值

一個表示該 IP 位址是否無法存取的值。

Flags

類型: UCHAR

一組標誌,指示該 IP 位址是否為路由器,以及該 IP 位址是否無法存取。

ReachabilityTime

ReachabilityTime.LastReachable

類型: ULONG

節點在收到可達性確認後,假設鄰居可聯絡的時間(以毫秒計)。

ReachabilityTime.LastUnreachable

類型: ULONG

節點在未收到可達性確認後,假設鄰居無法聯繫的時間(以毫秒計)。

備註

MIB_IPNET_ROW2結構是在 Windows Vista 及之後版本中定義的。

GetIpNetTable2 函式枚舉本地系統上的鄰居 IP 位址,並以 MIB_IPNET_TABLE2 結構回傳這些資訊。

對於 IPv4,這包括透過位址解析協定(ARP)確定的位址。 對於 IPv6,這包括依據 RFC 2461 規定的鄰居發現(Neighbor Discovery, ND)協議所確定的位址。 如需詳細資訊,請參閱http://www.ietf.org/rfc/rfc2461.txt

GetIpNetEntry2 函式會取得一個鄰居 IP 位址,並以 MIB_IPNET_ROW2 結構回傳此資訊。

請注意, Netioapi.h 標頭檔案會自動包含在 Iphlpapi.h 標頭檔中。 Netioapi.h 標頭檔絕對不應直接使用。

需求

Requirement 價值觀
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 2008 [僅限傳統型應用程式]
Header netioapi.h(包括 Iphlpapi.h)

另請參閱

建立 IpNetEntry2

GetIpNetEntry2

GetIpNetTable2

MIB_IPNET_TABLE2

SOCKADDR_INET