【发布时间】:2015-12-26 00:03:49
【问题描述】:
我正在尝试使用 WinPcap 编写一个简单的 C 代码来广播信标数据包并在附近的所有 WiFi 单元中捕获它。我使用的代码与 WinPcap[1] 提供的代码非常相似。
如果我创建一个临时网络连接并将所有计算机加入其中,代码运行良好。然而,这个创建和加入自组织网络的过程很麻烦。如果无论每台计算机在哪个网络中,只要代码运行就广播和捕获信标数据包,那就更好了。
这个问题听起来很简单,但经过一番搜索,似乎这在 Windows 上是不可能完成的(除非重新编写驱动程序或内核):
- 使用 WinPcap[2] 的原始 WiFi 数据包
- 在没有网络连接的情况下发送数据包[3]
- winpcap/libpcap 是否允许我发送原始无线数据包?[4]
基本上,必须在监控模式下使用 WiFi,Windows[5] 不支持这种模式。因此,如果计算机不在同一个网络连接中,数据包将被丢弃。
第一期
我仍然很感兴趣,信标和探测请求数据包是整个网络的正常流量。如何不断地发送和接收它们,但不允许用户编写程序来这样做?如何调和呢?
第二期
有没有人有 Managed Wifi API[6] 的经验?我听说这可能会有所帮助。
第三期
Acrylic WiFi[7]声称已经开发了一个支持Windows下监控模式的NDIS驱动程序。有没有人有这个软件的经验?是否可以与C代码集成?
第 4 期
是否可以在 Linux 上编写这样的 Wifi 信标?在 Android 上?
- www.winpcap.org/docs/docs_412/html/main.html
- stackoverflow.com/questions/34454592/raw-wifi-packets-with-winpcap/34461313?noredirect=1#comment56674673_34461313
- stackoverflow.com/questions/25631060/sending-packets-without-network-connection-wireless-adapter
- stackoverflow.com/questions/7946497/does-winpcap-libpcap-allow-me-to-send-raw-wireless-packets
- en.wikipedia.org/wiki/Monitor_mode#Operating_system_support
- managedwifi.codeplex.com/
- www.acrylicwifi.com/
【问题讨论】:
标签: network-programming wifi wireless raw-sockets winpcap