Partager via


Écriture d’une partie de filtre ADDRESSTABLE

Le filtre d’adresse avertit le pilote moniteur réseau d’accepter les trames qui ont l’un des différents types d’adresses MAC spécifiés (Ethernet, Token Ring et FDDI). Vous pouvez spécifier un maximum de huit paires d’adresses. Une paire d’adresses peut spécifier une source, une destination, les deux, ou ni l’un ni l’autre.

La partie address du filtre se compose de deux structures : ADDRESSTABLE et ADDRESSPAIR.

Si vous spécifiez AUCUNE adresse, TOUTES les trames passent le filtre d’adresse. Toutefois, si vous spécifiez des adresses, seules les images qui passent le filtre d’adresse donné sont passées.

La génération du filtre d’adresses implique l’allocation d’une structure ADDRESSTABLE et le remplissage des membres de la structure ADDRESSPAIR .

Pour générer la partie adresse d’un filtre de capture

  1. Utilisez l’indicateur CAPTUREFILTER_FLAGS_LOCAL_ONLY de la structure CAPTUREFILTER pour limiter la capture au trafic vers et depuis votre ordinateur local.

    La définition de cet indicateur ne définit pas la carte réseau en mode promiscuous ; le fichier de capture capture capture uniquement le trafic local.

  2. Utilisez l’exemple de code suivant pour définir la structure 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. Utilisez les informations répertoriées dans le tableau suivant pour sélectionner un type d’indicateur ADDRESSPAIR .

    Indicateur Signification
    ADDRESS_FLAGS_MATCH_DST Correspond à une adresse de destination.
    ADDRESS_FLAGS_MATCH_SRC Correspond à une adresse source
    ADDRESS_FLAGS_EXCLUDE Exclut le frame si cette adresse est trouvée (source ou destination définie).
    ADDRESS_FLAGS_DST_GROUP_ADDR Correspond au bit de groupe (de l’adresse de destination) uniquement pour les messages de type diffusion.
    ADDRESS_FLAGS_MATCH_BOTH Correspond aux adresses de destination et de source.

     

  4. Renseignez une adresse de destination, qui est évaluée par rapport à l’indicateur ADDRESSPAIR que vous sélectionnez.

  5. Renseignez une adresse source, qui est évaluée par rapport à l’indicateur ADDRESSPAIR que vous sélectionnez.

  6. Remplissez la structure ADDRESSTABLE avec un tableau de structures ADDRESSPAIR , qui inclut les paires d’adresses évaluées par le pilote. Toutes les paires d’adresses sont évaluées en tant qu’instruction OU logique (ADDRESSPAIR 1 || ADDRESSPAIR 2). Vous pouvez inclure un maximum de huit paires d’adresses dans un filtre de capture.