Gravando a parte do filtro ADDRESSTABLE
O filtro de endereço notifica o driver do Monitor de Rede para aceitar quadros que têm um dos vários tipos de endereço MAC especificados (Ethernet, Anel de Token e FDDI). Você pode especificar um máximo de oito pares de endereços. Um par de endereços pode especificar uma origem, um destino, ambos ou nenhum dos dois.
A parte de endereço do filtro consiste em duas estruturas: ADDRESSTABLE e ADDRESSPAIR.
Se você especificar NENHUM endereço, TODOS os quadros passarão pelo filtro de endereço. No entanto, se você especificar qualquer endereço, somente os quadros que passarem pelo filtro de endereço determinado passarão.
Criar o filtro de endereço envolve alocar uma estrutura ADDRESSTABLE e preencher membros da estrutura ADDRESSPAIR .
Para criar a parte de endereço de um filtro de captura
Use o sinalizador CAPTUREFILTER_FLAGS_LOCAL_ONLY da estrutura CAPTUREFILTER para restringir a captura ao tráfego de e para o computador local.
Definir esse sinalizador não definirá a NIC para o modo promíscuo; o arquivo de captura capturará apenas o tráfego local.
Use o seguinte código de exemplo para definir a estrutura ADDRESSTABLE :
typedef struct _ADDRESSTABLE { DWORD nAddressPairs; DWORD nNonMacAddressPairs; ADDRESSPAIR AddressPair[MAX_ADDRESS_PAIRS]; } ADDRESSTABLE; typedef ADDRESSTABLE *LPADDRESSTABLE; typedef struct _ADDRESSPAIR { WORD AddressFlags; WORD NalReserved; ADDRESS DstAddress; ADDRESS SrcAddress; } ADDRESSPAIR; typedef ADDRESSPAIR *LPADDRESSPAIR;
Use as informações, listadas na tabela a seguir, para selecionar um tipo de sinalizador ADDRESSPAIR .
Sinalizador Significado ADDRESS_FLAGS_MATCH_DST Corresponde a um endereço de destino. ADDRESS_FLAGS_MATCH_SRC Corresponde a um endereço de origem ADDRESS_FLAGS_EXCLUDE Exclui o quadro se esse endereço for encontrado (uma origem ou destino definido). ADDRESS_FLAGS_DST_GROUP_ADDR Corresponde ao bit de grupo (do endereço de destino) somente para mensagens de tipo de transmissão. ADDRESS_FLAGS_MATCH_BOTH Corresponde aos endereços de destino e de origem. Preencha um endereço de destino, que é avaliado em relação ao sinalizador ADDRESSPAIR selecionado.
Preencha um endereço de origem, que é avaliado em relação ao sinalizador ADDRESSPAIR selecionado.
Preencha a estrutura ADDRESSTABLE com uma matriz de estruturas ADDRESSPAIR , que inclui os pares de endereços avaliados pelo driver. Todos os pares de endereços são avaliados como uma instrução OR lógica (ADDRESSPAIR 1 || ADDRESSPAIR 2). Você pode incluir no máximo oito pares de endereços em um filtro de captura.