Поделиться через


Запись части фильтра ADDRESSTABLE

Фильтр адресов уведомляет драйвер сетевого монитора о принятии кадров, имеющих один из множества указанных типов MAC-адресов (Ethernet, маркерный круг и FDDI). Можно указать не более восьми пар адресов. В паре адресов можно указать источник, назначение или ни то, ни другое.

Адресная часть фильтра состоит из двух структур: ADDRESSTABLE и ADDRESSPAIR.

Если указать нет адресов, все кадры будут проходить фильтр адресов. Однако если указать какие-либо адреса, будут проходить только те кадры, которые проходят заданный фильтр адресов.

Создание фильтра адресов включает выделение структуры ADDRESSTABLE и заполнение членов структуры ADDRESSPAIR .

Создание адресной части фильтра записи

  1. Используйте флаг CAPTUREFILTER_FLAGS_LOCAL_ONLY структуры CAPTUREFILTER , чтобы ограничить запись трафиком на локальный компьютер и с локального компьютера.

    Установка этого флага не приведет к перебору сетевого адаптера в неразборчивый режим; Файл записи будет записывать только локальный трафик.

  2. Используйте следующий пример кода, чтобы определить структуру 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;
    
  3. Используйте сведения, перечисленные в следующей таблице, чтобы выбрать тип флага ADDRESSPAIR .

    Flag Значение
    ADDRESS_FLAGS_MATCH_DST Соответствует целевому адресу.
    ADDRESS_FLAGS_MATCH_SRC Соответствует исходному адресу
    ADDRESS_FLAGS_EXCLUDE Исключает кадр, если этот адрес найден (определенный источник или назначение).
    ADDRESS_FLAGS_DST_GROUP_ADDR Соответствует биту группы (адреса назначения) только для широковещательных сообщений.
    ADDRESS_FLAGS_MATCH_BOTH Соответствует адресам назначения и исходного адреса.

     

  4. Введите адрес назначения, который вычисляется по выбранному флагу ADDRESSPAIR .

  5. Введите исходный адрес, который вычисляется по выбранному флагу ADDRESSPAIR .

  6. Заполните структуру ADDRESSTABLE массивом структур ADDRESSPAIR , который включает пары адресов, оцениваемые драйвером. Все пары адресов оцениваются как логическая инструкция ИЛИ (ADDRESSPAIR 1 || ADDRESSPAIR 2). В фильтр отслеживания можно включить не более восьми пар адресов.