1
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");

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

那么,仅捕获 assoc-req、probe-req、probe-resp 帧是否是正确的过滤器表达式?

4

1 回答 1

1

正如interjay所说,您必须调用pcap_setfilter()才能使过滤器生效。(使其成为答案,以便问题显示为答案。)

于 2012-10-19T21:27:59.200 回答