Синтаксис выражения фильтрации захвата Wincap - PullRequest
0 голосов
/ 23 декабря 2010

Как указать синтаксис для фильтрации порта сервера tcp по его ip-адресу?

   const char *packet_filter = "tcp src port 2054";

    bpf_u_int32 netmask;
    bpf_program fcode;

    if (d->addresses != NULL)
      /* Retrieve the mask of the first address of the interface */
        netmask=((struct sockaddr_in *)(d->addresses->netmask))->sin_addr.S_un.S_addr;
    else
       /* If the interface is without an address we suppose to be in a C class network */
        netmask=0xffffff; 


    //compile the filter
    if (pcap_compile(adhandle, &fcode, packet_filter, 1, netmask) < 0)
    {
        fprintf(stderr,"\nUnable to compile the packet filter. Check the syntax.\n");
        /* Free the device list */
        pcap_freealldevs(alldevs);
        return -1;
    }

    //set the filter
    if (pcap_setfilter(adhandle, &fcode) < 0)
    {
        fprintf(stderr,"\nError setting the filter.\n");
        /* Free the device list */
        pcap_freealldevs(alldevs);
        return -1;
}

1 Ответ

0 голосов
/ 23 декабря 2010

"tcp и хост dst YOU_SERVER_IP и порт dst 2054"

Вы можете получить больше информации на http://www.cs.ucr.edu/~marios/ethereal-tcpdump.pdf

...