调用pcap_set_rfmon

时间:2019-01-18 16:48:51

标签: c++ pcap winpcap

我正在尝试将wlan适配器设置为使用pcap监视模式(精确地为npcap mor)。我正在使用Windows10和npcap版本0.99-r8(SDK版本:1.01)。该适配器似乎能够使用监视器模式,因为pcap_set_rfmon返回1,并且可以使用npcap安装随附的“ wlanhelper”工具来应用监视器模式。但是,我无法使用自己的代码将适配器设置为监视模式。这是我使用的代码:

pcap_t *handle = pcap_create("\\Device\\NPF_{2E141E66-62D7-4DF7-9612-0E49790FBE02}", errbuf); // handle is created properly
if (pcap_set_rfmon(handle, 1) == 0)
{
    std::cout << "monitor mode enabled" << std::endl; // this msg was always printed in my case
}
pcap_set_snaplen(handle, 2048);
pcap_set_promisc(handle, 0);
pcap_set_timeout(handle, 512);

int status = pcap_activate(handle); // pcap_activate only returns -1 if pcap_set_rfmon has been called before

其中pcap_set_rfmon返回0(消息已打印),而pcap_activate返回-1。我已经检查了pcap_geterr返回的错误消息,但所有显示的都是“通用错误”。我也尝试过以管理员身份运行该程序,但是会发生相同的错误。那么这段代码有问题吗?

0 个答案:

没有答案