estrutura IP_MSFILTER (ws2ipdef.h)
A estrutura ip_msfilter fornece parâmetros de filtragem multicast para endereços IPv4.
Sintaxe
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;
Membros
imsf_multiaddr
O endereço IPv4 do grupo multicast.
imsf_interface
O endereço IPv4 local da interface ou o índice de interface no qual o grupo multicast deve ser filtrado. Esse valor está na ordem de bytes de rede. Se esse membro especificar um endereço IPv4 de 0.0.0.0, a interface multicast IPv4 padrão será usada.
Usar um índice de interface de 1 seria o mesmo que um endereço IP de 0.0.0.1.
imsf_fmode
O modo de filtro multicast a ser usado. Esse parâmetro pode ser MCAST_INCLUDE (valor 0) para incluir fontes multicast específicas ou MCAST_EXCLUDE (valor 1) para excluir o tráfego de fontes especificadas.
No Windows Server 2003 e no Windows XP, esses valores são definidos no arquivo de cabeçalho Ws2tcpip.h .
No Windows Vista e posterior, esses valores são definidos como valores de enumeração na enumeração MULTICAST_MODE_TYPE definida no arquivo de cabeçalho Ws2ipdef.h .
imsf_numsrc
O número de fontes no membro imsf_slist .
imsf_slist[1]
Uma matriz de estruturas de in_addr que especificam os endereços de origem multicast IPv4 a serem incluídos ou excluídos.
Comentários
A estrutura ip_msfilter é usada com endereços IPv4. A estrutura de ip_msfilter é passada como um argumento para o SIO_GET_MULTICAST_FILTER e SIO_SET_MULTICAST_FILTER IOCTLs.
A estrutura ip_msfilter e as estruturas relacionadas usadas para programação multicast IPv4 são baseadas em recomendações de IETF nas seções 4 e 8.1 do RFC 3768. Para obter mais informações, consulte http://www.ietf.org/rfc/rfc3678.txt.
No Windows Vista e posteriores, um conjunto de opções de soquete está disponível para programação multicast que dá suporte a endereços IPv6 e IPv4. Essas opções de soquete são independentes de IP e podem ser usadas no IPv6 e no IPv4. Essas opções independentes de IP usam as estruturas GROUP_REQ e GROUP_SOURCE_REQ e as IOCTLs SIOCSMSFILTER e SIOCGMSFILTER . Estas são as opções de soquete preferenciais e IOCTLs para programação multicast no Windows Vista e posterior.
O membro imsf_interface pode ser um índice de interface. Qualquer endereço IPv4 no bloco 0.x.x.x (primeiro octeto de 0), exceto pelo endereço IPv4 de 0.0.0.0, é tratado como um índice de interface. Um índice de interface é um número de 24 bits. O bloco de endereços IPv4 0.0.0.0/8 não é usado (esse intervalo é reservado). A função GetAdaptersAddresses pode ser usada para obter informações de índice de interface a serem usadas para o membro imsf_interface .
É recomendável que um endereço IPv4 local ou índice de interface sempre seja especificado no membro imsf_interface da estrutura ip_msfilter , em vez de usar a interface padrão. Isso é particularmente importante em computadores com vários adaptadores de rede e vários endereços IPv4 públicos.
A interface padrão usada para multicast IPv4 é determinada pela pilha de rede no Windows. Um aplicativo pode determinar a interface padrão usada para multicast IPv4 usando a função GetIpForwardTable para recuperar a tabela de roteamento IPv4. O adaptador de rede com o menor valor para a métrica de roteamento para um endereço IP de destino de 224.0.0.0 é a interface padrão para multicast IPv4. A tabela de roteamento também pode ser exibida no prompt de comando com o seguinte comando:
imprimir rota
A opção de soquete IP_MULTICAST_IF pode ser usada para definir a interface padrão para enviar pacotes multicast IPv4. Essa opção de soquete não altera a interface padrão usada para receber pacotes multicast IPv4.
Um aplicativo multicast IPv4 típico usaria a opção de soquete IP_ADD_MEMBERSHIP com a estrutura ip_mreq ou a opção de soquete IP_ADD_SOURCE_MEMBERSHIP com a estrutura ip_mreq_source para unir um grupo multicast e escutar pacotes multicast em uma interface específica. A opção IP_MULTICAST_IF soquete seria usada para definir a interface para enviar pacotes multicast IPv4 para o grupo multicast. O cenário mais comum seria um aplicativo multicast que escuta e envia na mesma interface para um grupo multicast. Vários soquetes podem ser usados por um aplicativo multicast com um soquete para escuta e um ou mais soquetes para envio.
No Microsoft Windows Software Development Kit (SDK) lançado para Windows Vista e posterior, a organização de arquivos de cabeçalho foi alterada e a estrutura de ip_msfilter é definida no arquivo de cabeçalho Ws2ipdef.h , que é incluído automaticamente no arquivo de cabeçalho Ws2tcpip.h . Os arquivos de cabeçalho Ws2ipdef.h nunca devem ser usados diretamente.
Requisitos
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Cabeçalho | ws2ipdef.h (include Ws2tcpip.h) |