我正在使用libpcap编写一个嗅探器程序。对于初学者,我在网上引用了各种程序员关于如何使用Libpcap编写Basic Sniffer程序的教程..它仅从以太网连接中捕获数据包... < / p>
我一直在搜索如何使用libpcap编写一个程序来捕获来自wifi连接的数据包....但我没有得到任何可以帮助我...
我是否需要在系统中进行一些设置以确保libpcap可以捕获数据包...因为方法pcap_lookupdev
指向默认设备eth0
答案 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了解相关信息。)