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帧是正确的过滤表达式吗?
答案 0 :(得分:1)
正如interjay所说,您必须致电pcap_setfilter()
以使过滤器生效。 (将其作为答案,以便问题显示为有答案。)