0

我正在使用过滤器字符串来仅捕获来自我工作的 wifi 路由器的探测请求帧monitor/Promisc mode

"type mgt subtype probe-req"当我在笔记本电脑上运行我的代码但在我的linksys WRT54g上运行我的代码时,相同的字符串正在工作,它给出的错误是

cannot pcap_compile() function is not working.

为了更清楚地说明,我在我的路由器上使用 OpenWRT White Russian 0.9 固件及其等效的 SDK 为其构建包。该程序使用 Libpcap 库从网络捕获原始数据包。

所以我想知道在像路由器这样的嵌入式设备上工作时字符串格式是否有任何变化。如果是的话,你能建议我在哪里可以找到它的文档。如果没有,那我做错了什么。

4

1 回答 1

0

允许的过滤器字符串取决于:

  • 正在使用的 libpcap/WinPcap 版本;
  • 在设备上捕获的链路层标头类型。

如果正在使用 libpcap 1.0 或更高版本并且适配器正在提供带有 802.11 标头的数据包,则将允许该特定过滤器。请注意,在大多数操作系统上,802.11 适配器在适配器运行于监控模式时才会提供带有 802.11 标头的数据包;否则,它将提供带有以太网标头的数据包,并且只提供数据帧,而不提供管理或控制帧。

该程序使用 Libpcap 库从网络捕获原始数据包。

无论程序是什么,它都应该更好地报告来自pcap_compile(). 它应该在错误消息中包含您传递给的pcap_geterr()when返回的文本;这样,您将了解有关错误发生原因的更多信息,因此将了解有关您需要采取哪些措施来修复它的更多信息。pcap_geterr()pcap_t *pcap_compile()

于 2014-03-07T19:56:36.060 回答