【发布时间】:2012-10-18 08:59:00
【问题描述】:
我想分析网络流量,但不是通过连接来分析它只是 打开 wifi 并嗅探数据包(IEEE 802.11 帧) 在混杂模式下
我已经尝试过 libpcap,但它可能会在内部更改 datalinktype,因为我在
中提供 wifi 接口descr=pcap_open_live("en1", MAXBYTES2CAPTURE, 1, 512, errbuf);
(我们知道 mac OS x 有 en1 作为 wifi 接口)
现在当我这样做时
printf("%s", pcap_datalink_val_to_name( pcap_datalink(descr)));
它给了我结果"ethernet"
我试图在不连接到我的wifi网络的情况下使用wireshark捕获数据包并且它有效!
我能够在不连接到我的 wifi 网络的情况下捕获Beacon , Acknowledgement and Authentication frames。
现在:
- 我必须为此制作网卡驱动程序还是 libpcap 可以做到这一点?如果是,如何?
- wireshark 是否为此制作了某种驱动程序?如果是,请帮助我在它的源代码中找到它。
- 我已经尝试过 Apple 的 CFNetwork,但如果不连接到网络,它也无法捕获。
- 如果我得到一些关于一些用户空间代码的建议将会非常有帮助,因为内核级编码有点凝灰岩:(
我在 xCode 4.5.1 中的 MacOS 10.7 上编码
更新:
我已经这样做了:
descr=pcap_create("e1", errbuf);
pcap_set_rfmon(descr, 0);
pcap_set_promisc(descr, 0);
pcap_activate(descr);
descr=pcap_open_live("en1", 2048, 1, 512, errbuf);
是的,wifi 上有一个小监视器图标,我可以闻一下 数据包,但只有当我连接到网络时,我想做同样的事情 当我没有连接到 wifi 时,比如捕获 Beacon 和 确认帧是指我们的网卡通过它检测可用 wifi 网络的数据包
【问题讨论】:
标签: wireshark libpcap packet-sniffers wifi