作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试将我的设备设置为监控模式,我知道它能够在监控模式下执行“iwconfig wlan0 模式监控”工作,我运行我的代码并且我可以从任何地方捕获数据包。
问题是,在 libpcap 中,它根本无法将我的设备设置为监控模式(没有输入上述命令行)。在我手动连接到接入点之前,我无法捕获任何数据包。
pcap_t *handler = pcap_create("wlan0",errbuff);
if(pcap_set_rfmon(handler,1)==0 )
{
std::cout << "monitor mode enabled" << std::endl;
}
handler=pcap_open_live ("wlan0", 2048,0,512,errbuff);
int status = pcap_activate(handler); //it returns 0 here.
这是代码问题还是 pcap 库问题?有人成功地将他们的设备设置为监控模式而不使用命令行吗?顺便说一句,我使用的是 Realtek2500。
最佳答案
您不应该在同一代码中使用 pcap_open_live
和 pcap_create
/pcap_activate
。尝试做
pcap_t *handler = pcap_create("wlan0",errbuff);
if (handler == NULL)
{
std::cerr << "pcap_create failed: " << errbuf << std::endl;
return; // or exit or return an error code or something
}
if(pcap_set_rfmon(handler,1)==0 )
{
std::cout << "monitor mode enabled" << std::endl;
}
pcap_set_snaplen(handler, 2048); // Set the snapshot length to 2048
pcap_set_promisc(handler, 0); // Turn promiscuous mode off
pcap_set_timeout(handler, 512); // Set the timeout to 512 milliseconds
int status = pcap_activate(handler);
当然,还要检查 status
的值。
关于c++ - pcap_set_rfmon 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4516436/
我正在尝试将我的设备设置为监控模式,我知道它能够在监控模式下执行“iwconfig wlan0 模式监控”工作,我运行我的代码并且我可以从任何地方捕获数据包。 问题是,在 libpcap 中,它根本无
#include #include #include #include #include #include #include #include #include #include
我是一名优秀的程序员,十分优秀!