在 linux 上使用 ioctl 进行被动 wifi 扫描

Passive wifi scan with ioctl on linux

我可以使用 ioctl SIOCSIWSCAN 和 SIOCGIWSCAN 执行正常扫描并获取 AP 列表,但是当我将卡设置为监控模式时,我得到错误号 = 操作不受支持。

被动扫描是否有不同的 ioctl 调用?

我知道 wifi 卡不是问题,因为我用 airodump-ng 得到了结果,我检查了两张不同的卡。

首先,在命令行输入:

iw phy <phy> info 

并查看 new_interface 是否列在支持的命令下。您可以通过以下方式获取卡片的物理层:

iw 开发

其次,我发现如果我先删除phy上的所有接口,将卡设置为监控模式会更容易。有些卡在有接口的情况下不能正常播放。

使用 ioctl 启动或关闭卡并获取卡的硬件地址。否则你应该使用 netlink - 你在 nl80211.h

中寻找 NL80211_CMD_NEW_INTERFACE