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.
Requisiti
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Intestazione | ws2ipdef.h (includere Ws2tcpip.h) |