使用libpcap捕获Wifi数据包

时间:2014-02-13 18:36:53

标签: libpcap

我正在使用libpcap编写一个嗅探器程序。对于初学者,我在网上引用了各种程序员关于如何使用Libpcap编写Basic Sniffer程序的教程..它仅从以太网连接中捕获数据包... < / p>

我一直在搜索如何使用libpcap编写一个程序来捕获来自wifi连接的数据包....但我没有得到任何可以帮助我...

我是否需要在系统中进行一些设置以确保libpcap可以捕获数据包...因为方法pcap_lookupdev指向默认设备eth0

1 个答案:

答案 0 :(得分:1)

您需要将Wi-Fi设备的名称(可能是wlan0)硬编码到您的程序中,或者给它一个UI选项(命令行标志等)以让用户指定设备可以捕获流量。

您的系统上没有可以更改pcap_lookupdev()返回的设备的设置。

Tcpdump和Wireshark / TShark /等。有一个-i命令行选项来指定要捕获的设备,Wireshark有一个GUI对话框,允许用户指定它。如果用户明确指定设备,则不依赖pcap_lookupdev()

请注意,如果您在Wi-Fi上捕获,默认情况下,您只会捕获进出机器的流量。如果要捕获网络上的所有流量,包括进出其他计算机的流量,则需要以监控模式捕获;更新版本的libpcap有支持它的API,但它们只能保证在OS X上工作(出于各种复杂的原因,它们可能会也可能不会在Linux上工作,在设备名eth0的情况下,我认为你正在使用;在修复之前,你需要使用诸如aircrack-ng之类的东西打开监控模式 - 请参阅the WLAN capture setup page section on Linux in the Wireshark Wiki了解相关信息。)