Condividi tramite


IP_MSFILTER struttura (ws2ipdef.h)

La struttura ip_msfilter fornisce parametri di filtro multicast per gli indirizzi IPv4.

Sintassi

typedef struct ip_msfilter {
  IN_ADDR             imsf_multiaddr;
  IN_ADDR             imsf_interface;
  MULTICAST_MODE_TYPE imsf_fmode;
  ULONG               imsf_numsrc;
  IN_ADDR             imsf_slist[1];
} IP_MSFILTER, *PIP_MSFILTER;

Members

imsf_multiaddr

Indirizzo IPv4 del gruppo multicast.

imsf_interface

Indirizzo IPv4 locale dell'interfaccia o dell'indice dell'interfaccia in cui è necessario filtrare il gruppo multicast. Questo valore è in ordine di byte di rete. Se questo membro specifica un indirizzo IPv4 pari a 0.0.0.0,0, viene usata l'interfaccia multicast IPv4 predefinita.

Per usare un indice di interfaccia pari a 1 sarebbe uguale a un indirizzo IP pari a 0.0.0.1.

imsf_fmode

Modalità filtro multicast da usare. Questo parametro può essere MCAST_INCLUDE (valore 0) per includere origini multicast specifiche o MCAST_EXCLUDE (valore 1) per escludere il traffico da origini specificate.

In Windows Server 2003 e Windows XP questi valori sono definiti nel file di intestazione Ws2tcpip.h .

In Windows Vista e versioni successive questi valori vengono definiti come valori di enumerazione nell'enumerazione MULTICAST_MODE_TYPE definita nel file di intestazione Ws2ipdef.h .

imsf_numsrc

Numero di origini nel membro imsf_slist .

imsf_slist[1]

Matrice di strutture in_addr che specificano gli indirizzi di origine multicast IPv4 da includere o escludere.

Commenti

La struttura ip_msfilter viene usata con indirizzi IPv4. La struttura ip_msfilter viene passata come argomento per i SIO_GET_MULTICAST_FILTER e SIO_SET_MULTICAST_FILTER IOCTLs.

La struttura ip_msfilter e le strutture correlate usate per la programmazione multicast IPv4 si basano sulle raccomandazioni di IETF nelle sezioni 4 e 8.1 di RFC 3768. Per altre informazioni, vedere http://www.ietf.org/rfc/rfc3678.txt.

In Windows Vista e versioni successive sono disponibili un set di opzioni socket per la programmazione multicast che supporta gli indirizzi IPv6 e IPv4. Queste opzioni di socket sono agnostiche e possono essere usate sia in IPv6 che in IPv4. Queste opzioni IP agnostiche usano le GROUP_REQ e le strutture GROUP_SOURCE_REQ e SIOCSMSFILTER e SIOCGMSFILTER IOCTLs. Queste sono le opzioni di socket preferite e IOCTLs per la programmazione multicast in Windows Vista e versioni successive.

Il membro imsf_interface può essere un indice di interfaccia. Qualsiasi indirizzo IPv4 nel blocco 0.x.x.x (primo ottetto di 0) ad eccezione dell'indirizzo IPv4 di 0.0.0.0 viene considerato come indice di interfaccia. Un indice di interfaccia è un numero a 24 bit. Il blocco indirizzi IPv4 0.0.0.0.0/8 non viene usato (questo intervallo è riservato). La funzione GetAdaptersAddresses può essere usata per ottenere informazioni sull'indice dell'interfaccia da usare per il membro imsf_interface .

È consigliabile specificare sempre un indirizzo O un indice dell'interfaccia locale nel membro imsf_interface della strutturaip_msfilter anziché usare l'interfaccia predefinita. Ciò è particolarmente importante nei computer con più interfacce di rete e più indirizzi IPv4 pubblici.

L'interfaccia predefinita usata per il multicast IPv4 è determinata dallo stack di rete in Windows. Un'applicazione può determinare l'interfaccia predefinita usata per il multicast IPv4 usando la funzione GetIpForwardTable per recuperare la tabella di routing IPv4. L'interfaccia di rete con il valore più basso per la metrica di routing per un indirizzo IP di destinazione pari a 224.0.0.0 è l'interfaccia predefinita per il multicast IPv4. La tabella di routing può essere visualizzata anche dal prompt dei comandi con il comando seguente:

stampa route

L'opzione IP_MULTICAST_IF socket può essere usata per impostare l'interfaccia predefinita per inviare pacchetti multicast IPv4. Questa opzione socket non modifica l'interfaccia predefinita usata per ricevere pacchetti multicast IPv4.

Un'applicazione multicast IPv4 tipica userebbe l'opzione socket IP_ADD_MEMBERSHIP con la strutturaip_mreq o l'opzione socket IP_ADD_SOURCE_MEMBERSHIP con la struttura ip_mreq_source per aggiungere un gruppo multicast e ascoltare i pacchetti multicast in un'interfaccia specifica. L'opzione socket IP_MULTICAST_IF verrà usata per impostare l'interfaccia per inviare pacchetti multicast IPv4 al gruppo multicast. Lo scenario più comune è un'applicazione multicast in ascolto e invia nella stessa interfaccia per un gruppo multicast. Più socket possono essere usati da un'applicazione multicast con un socket per l'ascolto e uno o più socket per l'invio.

Nel Microsoft Windows Software Development Kit (SDK) rilasciato per Windows Vista e versioni successive, l'organizzazione dei file di intestazione è stata modificata e la struttura di ip_msfilter è definita nel file di intestazione Ws2ipdef.h che viene incluso automaticamente nel file di intestazione Ws2tcpip.h . I file di intestazione Ws2ipdef.h non devono mai essere usati direttamente.

Nota Le IP_MSFILTER e le PIP_MSFILTER strutture derivate vengono definite solo in Windows SDK rilasciato con Windows Vista e versioni successive. La struttura ip_msfilter deve essere usata nelle versioni precedenti di Windows SDK.
 

Requisiti

   
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Intestazione ws2ipdef.h (includere Ws2tcpip.h)

Vedi anche

Programmazione multicast basata su stato finale

GROUP_FILTER

GROUP_REQ

GROUP_SOURCE_REQ

GetAdaptersAddresses

GetIpForwardTable

Opzioni socket IPPROTO_IP

MULTICAST_MODE_TYPE

Programmazione multicast

Opzioni socket

ip_mreq

ip_mreq_source