这是一个正确的pcap过滤器表达式

时间:2012-07-13 10:30:15

标签: c pcap libpcap wlan

const char *str = "wlan subtype assoc-req or wlan subtype probe-req or wlan subtype probe-resp";
struct bpf_program fp;

if((pcap_compile(pkt_handle, &fp, str, 1, PCAP_NETMASK_UNKNOWN)==-1))
{
    pcap_perror(pkt_handle, "Compile");
}
else
    printf("filter compiled\n");

运行后,程序显示“filter compiled”,但它仍然捕获Beacon帧和许多其他帧,除了过滤器表达式中提到的三个帧。

那么,只捕获assoc-req,probe-req,probe-resp帧是正确的过滤表达式吗?

1 个答案:

答案 0 :(得分:1)

正如interjay所说,您必须致电pcap_setfilter()以使过滤器生效。 (将其作为答案,以便问题显示为答案。)