structure IPV6_MREQ (ws2ipdef.h)

La structure ipv6_mreq fournit des informations de groupe de multidiffusion pour les adresses IPv6.

Syntaxe

typedef struct ipv6_mreq {
  IN6_ADDR ipv6mr_multiaddr;
  ULONG    ipv6mr_interface;
} IPV6_MREQ, *PIPV6_MREQ;

Membres

ipv6mr_multiaddr

Adresse du groupe de multidiffusion IPv6.

ipv6mr_interface

Index d’interface de l’interface locale à laquelle le groupe de multidiffusion doit être joint ou supprimé. Si ce membre spécifie un index d’interface de 0, l’interface de multidiffusion par défaut est utilisée.

Remarques

La structure ipv6_mreq est utilisée avec les adresses IPv6. La structure de ipv6_mreq est utilisée avec les options de socket IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP, IPV6_JOIN_GROUP et IPV6_LEAVE_GROUP . Les options de socket IPV6_JOIN_GROUP et IPV6_ADD_MEMBERSHIP sont définies pour être identiques. Les options de socket IPV6_LEAVE_GROUP et IPV6_DROP_MEMBERSHIP sont définies comme étant identiques.

Sur Windows Vista et versions ultérieures, un ensemble d’options de socket sont disponibles pour la programmation multidiffusion qui prend en charge les adresses IPv6 et IPv4. Ces options de socket sont indépendantes des adresses IP et peuvent être utilisées sur IPv6 et IPv4. Ces options indépendantes de l’adresse IP utilisent les structures GROUP_REQ et GROUP_SOURCE_REQ et sont les options de socket préférées pour la programmation multidiffusion sur Windows Vista et versions ultérieures.

La structure ipv6_mreq est l’équivalent IPv6 de la structure de ip_mreq basée sur IPv4.

La fonction GetAdaptersAddresses peut être utilisée pour obtenir les informations d’index d’interface requises pour le membre ipv6mr_interface.

La structure ipv6_mreq et les options de socket de niveau IPPROTO_IPV6 qui utilisent cette structure ne sont valides que sur les sockets de données et bruts (le type de socket doit être SOCK_DGRAM ou SOCK_RAW).

Il est recommandé de toujours spécifier un index d’interface IPv6 local dans le ipv6mr_interface membre de la structure ipv6_mreq, plutôt que d’utiliser l’interface par défaut. Cela est particulièrement important sur les ordinateurs avec plusieurs interfaces réseau et plusieurs adresses IPv6 publiques.

L’interface par défaut utilisée pour la multidiffusion IPv6 est déterminée par la pile réseau dans Windows. Sur Windows Vista et versions ultérieures, une application peut déterminer l’interface par défaut utilisée pour la multidiffusion IPv6 à l’aide de la fonction GetIpForwardTable2 pour récupérer la table de routage IPv6. L’interface réseau avec la valeur la plus faible pour la métrique de routage pour une adresse de multidiffusion IPv6 de destination (le bloc d’adresse FF00 ::/8 IPv6) est l’interface par défaut pour la multidiffusion IPv6. La table de routage peut également être affichée à partir de l’invite de commandes avec la commande suivante :

impression de routage

L’option de socket IPV6_MULTICAST_IF peut être utilisée pour définir l’interface par défaut pour envoyer des paquets de multidiffusion IPv6. Cette option de socket ne modifie pas l’interface par défaut utilisée pour recevoir les paquets de multidiffusion IPv6.

Une application de multidiffusion IPv6 classique utilise l’option de socket IPV6_ADD_MEMBERSHIP ou IPV6_JOIN_GROUP avec la structure ipv6_mreq pour rejoindre un groupe de multidiffusion et écouter les paquets de multidiffusion sur une interface spécifique. L’option de socket IPV6_MULTICAST_IF est utilisée pour définir l’interface pour envoyer des paquets de multidiffusion IPv6 au groupe de multidiffusion. Le scénario le plus courant serait une application de multidiffusion qui écoute et envoie sur la même interface pour un groupe de multidiffusion. Plusieurs sockets peuvent être utilisés par une application de multidiffusion avec un socket pour l’écoute et un ou plusieurs sockets pour l’envoi.

Sur le Microsoft Kit de développement logiciel Windows (Kit SDK Windows) (SDK) publié pour Windows Vista et versions ultérieures, la organization des fichiers d’en-tête a changé et la structure ipv6_mreq est définie dans le fichier d’en-tête Ws2ipdef.h qui est automatiquement inclus dans le fichier d’en-tête Ws2tcpip.h. Les fichiers d’en-tête Ws2ipdef.h ne doivent jamais être utilisés directement.

Note La structure dérivée PIP6_MREQ est définie uniquement sur les SDK Windows publiées avec Windows Vista et versions ultérieures. Le GROUP_REQ et le GROUP_SOURCE_REQ structurent et sont les options de socket préférées pour la programmation multidiffusion sur Windows Vista et versions ultérieures.
 

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
En-tête ws2ipdef.h (include Ws2tcpip.h)

Voir aussi

GROUP_REQ

GROUP_SOURCE_REQ

GetAdaptersAddresses

GetIpForwardTable2

IPPROTO_IPV6 Socket Options

Programmation multidiffusion

Socket Options

ip_mreq