共用方式為


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;

成員

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

RFC 2461 第 7.3.2 節中所定義的網路鄰近 IP 地址狀態。 如需詳細資訊,請參閱http://www.ietf.org/rfc/rfc2461.txt。 這個成員可以是 Nldef.h 頭檔中所定義NL_NEIGHBOR_STATE列舉類型的其中一個值。

意義
NlnsUnreachable
無法與該 IP 位址連線。
NlnsIncomplete
位址解析正在進行中,而且尚未判斷鄰近的連結層位址。 特別是針對 IPv6,「芳鄰請求」已傳送至目標的請求節點多播 IP 位址,但尚未收到對應的芳鄰公告。
NlnsProbe
芳鄰已無法連線,而且正在傳送探查來驗證可連線性。 針對 IPv6,系統會定期重新傳輸單播芳鄰請求探查,以主動進行可連線性確認,直到收到可連線性確認為止。
NlnsDelay
芳鄰已無法連線,且最近已將流量傳送至芳鄰。 不過,不要立即探查鄰近,而是在短時間內延遲傳送探查,讓上層通訊協議有機會提供可連線性確認。 對於 IPv6,自上次收到正向路徑正常運作且已傳送封包之後, ReachabilityTime.ReachableTime 成員所指定的時間會比 ReachabilityTime.ReachableTime 成員所指定的時間還多。 如果在一段時間內未收到可連線性確認, (用來延遲進入 NlnsDelay 狀態的第一個探查) ,則會傳送鄰近請求,並將 State 成員變更為 NlnsProbe
NlnsStale
芳鄰已無法連線,但在流量傳送至鄰近之前,不應嘗試驗證其可連線性。 對於 IPv6,自上次收到正向路徑正常運作之後, ReachabilityTime.ReachableTime 成員所指定的時間比在 ReachabilityTime.ReachableTime 成員中指定的時間還多。 當 StateNlnsStale 時,在傳送封包之前不會執行任何動作。

在收到更新快取IP位址的未要求芳鄰探索訊息時,會輸入 NlnsStale 狀態。 收到這類訊息不會確認可觸達性,而且輸入 NlnsStale 狀態可確保實際使用專案時快速驗證可連線性。 不過,在實際使用專案之前,不會實際驗證觸達性。

NlnsReachable
近鄰已知在數十秒前 (可連線到) 。 針對 IPv6,在 ReachabilityTime.ReachableTime 成員中指定的時間內收到正向確認,芳鄰的正向路徑正常運作。 雖然 StateNlnsReachable,但不會在傳送封包時執行任何特殊動作。
NlnsPermanent
IP 位址是永久位址。
NlnsMaximum
NL_NEIGHBOR_STATE列舉類型的最大可能值。 這不是 State 成員的法律值。

IsRouter

類型: BOOLEAN

值,指出此IP位址是否為路由器。

IsUnreachable

類型: BOOLEAN

值,指出此IP位址是否無法連線。

Flags

類型: UCHAR

一組旗標,指出IP位址是否為路由器,以及IP位址是否無法連線。

ReachabilityTime

ReachabilityTime.LastReachable

類型: ULONG 節點假設在收到可連線性確認之後可連線的時間,以毫秒為單位。

ReachabilityTime.LastUnreachable

類型: ULONG 節點假設在未收到可連線性確認之後無法連線到的時間,以毫秒為單位。

備註

MIB_IPNET_ROW2結構是在 Windows Vista 和更新版本上定義。

GetIpNetTable2 函式會列舉本機系統上的鄰近IP位址,並在MIB_IPNET_TABLE2結構中傳回這項資訊。

針對 IPv4,這包括決定的位址使用 ARP 解析通訊協定 (ARP) 。 針對 IPv6,這包括使用 RFC 2461 中所指定 IPv6 的芳鄰探索 (ND) 通訊協定所決定的位址。 如需詳細資訊,請參閱http://www.ietf.org/rfc/rfc2461.txt

GetIpNetEntry2 函式會擷取單一鄰近IP位址,並在MIB_IPNET_ROW2結構中傳回這項資訊。

請注意, Netioapi.h 頭文件會自動包含在 Iphlpapi.h 頭檔中。 不應該直接使用 Netioapi.h 頭檔。

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
標頭 netioapi.h (包含 Iphlpapi.h)

另請參閱

CreateIpNetEntry2

GetIpNetEntry2

GetIpNetTable2

MIB_IPNET_TABLE2

SOCKADDR_INET