问题描述
我正在运行Mac OS Catalina,并且具有无线ALFA网卡(支持监视模式)。我目前可以使用以下代码将标准Mac OS拥有的驱动程序设置为监视模式:
int main(int argc,char **argv)
{
char errbuf[PCAP_ERRBUF_SIZE];
char dev[] = "en0";
pcap_t *handler=pcap_create(dev,errbuf);
if (handler == NULL){
printf("unable to put in monitor mode\n");
return -1;
}
if(pcap_set_rfmon(handler,1) == 0){
printf("monitor mode enabled\n");
}
pcap_set_snaplen(handler,2048);
pcap_set_promisc(handler,0);
pcap_set_timeout(handler,10000);
int status = pcap_activate(handler);
return 0;
}
这利用了pcap plus plus
模块,该模块使用libpcap
并且导入是#include <pcap.h>
正如我所说,当我在计算机随附的普通WiFi卡上使用该卡时,它将进入监视模式。当我在"en7"
的ALFA网卡上使用它时,它甚至会打印出monitor mode enabled
(我的成功消息)。但是,未启用卡上的监视模式。我总是以root特权运行代码,所以我已经知道不是那样。另外,我不知道这是否对您很重要,但是我已经能够使用它来嗅探网络上的数据包。
这些是我能想到的唯一原因/解决方案。如果有人知道,请告诉我,我可能没有想到真正的解决方案。
(3可能是唯一可行的方法,但是,我不知道该如何实现)。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)