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;

Membres

Address

Type : SOCKADDR_INET

Adresse IP du voisin. 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 local unique (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 de voisin réseau, tel que défini 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 Signification
NlnsUnreachable
L’adresse IP est inaccessible.
NlnsIncomplete
La résolution de l’adresse est en cours et l’adresse de couche de liaison du voisin n’a pas encore été déterminée. Plus précisément 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é correspondante n’a pas encore été reçue.
NlnsProbe
Le voisin n’est plus connu pour être accessible et des sondes sont envoyées pour vérifier l’accessibilité. Pour IPv6, une confirmation d’accessibilité est activement recherchée en retransmettant des sondes de sollicitation de voisins 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, toutefois, retardez l’envoi des 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 que 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’entrée de l’état NlnsDelay , une sollicitation de voisin est envoyée et le membre de l’État est remplacé par NlnsProbe.
NlnsStale
Le voisin n’est plus connu pour être accessible, mais tant que le trafic n’est pas envoyé au voisin, aucune tentative ne doit être effectuée pour vérifier son accessibilité. Pour IPv6, plus de temps s’est écoulé que ce qui est spécifié dans le membre ReachabilityTime.ReachableTime depuis que la dernière confirmation positive a été reçue que le chemin d’accès avant fonctionnait correctement. Si l’état est 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 de 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 assure l’accessibilité 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 (dans les 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 vers le voisin fonctionnait correctement. Bien que l’état soit NlnsReachable, aucune action spéciale n’a lieu lors de l’envoi de paquets.
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 l’État membre.

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 Durée, en millisecondes, pendant laquelle un nœud suppose qu’un voisin est accessible après avoir reçu une confirmation d’accessibilité.

ReachabilityTime.LastUnreachable

Type : ULONG Durée, en millisecondes, pendant laquelle un nœud suppose qu’un voisin est inaccessible après n’avoir pas reçu de 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 à l’aide du protocole de résolution d’adresses (ARP). Pour IPv6, cela inclut les adresses déterminées à l’aide du protocole de découverte de voisins (ND) 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 seule adresse IP voisine et retourne ces informations dans une structure de 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.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
En-tête netioapi.h (inclure Iphlpapi.h)

Voir aussi

CreateIpNetEntry2

GetIpNetEntry2

GetIpNetTable2

MIB_IPNET_TABLE2

SOCKADDR_INET