次の方法で共有


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 メンバーで指定された時間よりも長い時間が経過しました。 NlnsDelay 状態に入ってから (最初のプローブの遅延に使用される) 期間内に到達可能性の確認が受信されない場合は、近隣要請が送信され、State メンバーが NlnsProbe に変更されます。
NlnsStale
ネイバーは到達可能であることが認識されなくなりましたが、トラフィックがネイバーに送信されるまで、到達可能性を確認する試みは行われません。 IPv6 の場合、転送パスが正常に機能していることを確認した最後の肯定的な確認が受信されてから、 ReachabilityTime.ReachableTime メンバーで指定された時間よりも長い時間が経過しました。 StateNlnsStale ですが、パケットが送信されるまでアクションは行われません。

NlnsStale 状態は、キャッシュされた IP アドレスを更新する未承諾の近隣探索メッセージを受信すると入力されます。 このようなメッセージを受信しても到達可能性は確認されず、 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) を使用して決定されたアドレスが含まれます。 IPv6 の場合、これには RFC 2461 で指定されている IPv6 の近隣探索 (ND) プロトコルを使用して決定されたアドレスが含まれます。 詳細については、「http://www.ietf.org/rfc/rfc2461.txt」を参照してください。

GetIpNetEntry2 関数は、1 つの近隣 IP アドレスを取得し、この情報をMIB_IPNET_ROW2構造体で返します。

Netioapi.h ヘッダー ファイルは Iphlpapi.h ヘッダー ファイルに自動的に含まれることに注意してください。 Netioapi.h ヘッダー ファイルを直接使用しないでください。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
Header netioapi.h (Iphlpapi.h を含む)

こちらもご覧ください

CreateIpNetEntry2

GetIpNetEntry2

GetIpNetTable2

MIB_IPNET_TABLE2

SOCKADDR_INET