Partager via


structure MIB_IPNET_ROW2 (netioapi.h)

La structure MIB_IPNET_ROW2 stocke des informations sur une adresse IP voisine.

Syntaxe

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

Type : SOCKADDR_INET

Adresse IP voisine. Ce membre peut être une adresse IPv6 ou une adresse IPv4.

InterfaceIndex

Type : NET_IFINDEX

Valeur d’index local de l’interface réseau associée à cette adresse IP. Cette valeur d’index peut changer lorsqu’une carte réseau est désactivée, puis activée, ou dans d’autres circonstances, et ne doit pas être considérée comme persistante.

InterfaceLuid

Type : NET_LUID

Identificateur unique local (LUID) de l’interface réseau associée à cette adresse IP.

PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]

Type : UCHAR[IF_MAX_PHYS_ADDRESS_LENGTH]

Adresse matérielle physique de la carte pour l’interface réseau associée à cette adresse IP.

PhysicalAddressLength

Type : ULONG

Longueur, en octets, de l’adresse matérielle physique spécifiée par le membre PhysicalAddress . La valeur maximale prise en charge est de 32 octets.

State

Type : NL_NEIGHBOR_STATE

État d’une adresse IP voisine du réseau telle que définie dans RFC 2461, section 7.3.2. Pour plus d’informations, consultez http://www.ietf.org/rfc/rfc2461.txt. Ce membre peut être l’une des valeurs du type d’énumération NL_NEIGHBOR_STATE défini dans le fichier d’en-tête Nldef.h .

Valeur Meaning
NlnsUnreachable
L’adresse IP est inaccessible.
NlnsIncomplete
La résolution d’adresses est en cours et l’adresse de la couche liaison du voisin n’a pas encore été déterminée. Spécifiquement pour IPv6, une sollicitation de voisin a été envoyée à l’adresse IP de multidiffusion de nœud sollicité de la cible, mais la publicité de voisin correspondante n’a pas encore été reçue.
NlnsProbe
Le voisin n’est plus connu pour être accessible, et les sondes sont envoyées pour vérifier l’accessibilité. Pour IPv6, une confirmation d’accessibilité est activement recherchée en retransmitant des sondes de sollicitation de voisin unicast à intervalles réguliers jusqu’à ce qu’une confirmation d’accessibilité soit reçue.
NlnsDelay
Le voisin n’est plus connu pour être accessible, et le trafic a récemment été envoyé au voisin. Au lieu de sonder immédiatement le voisin, cependant, retarder l’envoi de sondes pendant un court moment afin de donner aux protocoles de couche supérieure une chance de fournir une confirmation d’accessibilité. Pour IPv6, plus de temps s’est écoulé que ce qui est spécifié dans le membre ReachabilityTime.ReachableTime depuis la dernière confirmation positive a été reçue que le chemin d’accès avant fonctionnait correctement et qu’un paquet a été envoyé. Si aucune confirmation d’accessibilité n’est reçue dans un délai (utilisé pour retarder la première sonde) d’entrer dans l’état NlnsDelay , une sollicitation voisine est envoyée et le membre de l’État est remplacé par NlnsProbe.
NlnsStale
Le voisin n’est plus connu pour être accessible, mais jusqu’à ce que le trafic soit envoyé au voisin, aucune tentative ne doit être effectuée pour vérifier sa portée. Pour IPv6, plus de temps s’est écoulé que celui spécifié dans le membre ReachabilityTime.ReachableTime depuis la dernière confirmation positive a été reçue que le chemin d’accès avant fonctionnait correctement. Bien que l’état soit NlnsStale, aucune action n’a lieu tant qu’un paquet n’est pas envoyé.

L’état NlnsStale est entré lors de la réception d’un message de découverte voisin non sollicité qui met à jour l’adresse IP mise en cache. La réception d’un tel message ne confirme pas l’accessibilité et l’entrée de l’état NlnsStale est vérifiée rapidement si l’entrée est réellement utilisée. Toutefois, l’accessibilité n’est pas réellement vérifiée tant que l’entrée n’est pas réellement utilisée.

NlnsReachable
Le voisin est connu pour avoir été accessible récemment (il y a des dizaines de secondes). Pour IPv6, une confirmation positive a été reçue dans le délai spécifié dans le membre ReachabilityTime.ReachableTime que le chemin d’accès avant au voisin fonctionnait correctement. Bien que l’état soit NlnsReachable, aucune action spéciale n’a lieu à mesure que les paquets sont envoyés.
NlnsPermanent
L’adresse IP est une adresse permanente.
NlnsMaximum
Valeur maximale possible pour le type d’énumération NL_NEIGHBOR_STATE . Il ne s’agit pas d’une valeur légale pour le membre de l’État .

IsRouter

Type : BOOLEAN

Valeur qui indique si cette adresse IP est un routeur.

IsUnreachable

Type : BOOLEAN

Valeur qui indique si cette adresse IP est inaccessible.

Flags

Type : UCHAR

Ensemble d’indicateurs qui indiquent si l’adresse IP est un routeur et si l’adresse IP est inaccessible.

ReachabilityTime

ReachabilityTime.LastReachable

Type : ULONG

Temps, en millisecondes, qu’un nœud suppose qu’un voisin est accessible après avoir reçu une confirmation d’accessibilité.

ReachabilityTime.LastUnreachable

Type : ULONG

Temps, en millisecondes, qu’un nœud suppose qu’un voisin est inaccessible après avoir reçu une confirmation d’accessibilité.

Remarques

La structure MIB_IPNET_ROW2 est définie sur Windows Vista et versions ultérieures.

La fonction GetIpNetTable2 énumère les adresses IP voisines sur un système local et retourne ces informations dans une structure MIB_IPNET_TABLE2 .

Pour IPv4, cela inclut les adresses déterminées utilisées par le protocole ARP (Address Resolution Protocol). Pour IPv6, cela inclut des adresses déterminées à l’aide du protocole ND (Neighbor Discovery) pour IPv6, comme spécifié dans RFC 2461. Pour plus d’informations, consultez http://www.ietf.org/rfc/rfc2461.txt.

La fonction GetIpNetEntry2 récupère une adresse IP voisine unique et retourne ces informations dans une structure MIB_IPNET_ROW2 .

Notez que le fichier d’en-tête Netioapi.h est automatiquement inclus dans le fichier d’en-tête Iphlpapi.h . Le fichier d’en-tête Netioapi.h ne doit jamais être utilisé directement.

Spécifications

Requirement Valeur
Client minimum requis Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Header netioapi.h (include Iphlpapi.h)

Voir aussi

CreateIpNetEntry2

GetIpNetEntry2

GetIpNetTable2

MIB_IPNET_TABLE2

SOCKADDR_INET