gpt4 book ai didi

linux - 在 Linux 中使用 channel 跳跃进行数据包嗅探

转载 作者:太空狗 更新时间:2023-10-29 11:19:23 25 4
gpt4 key购买 nike

我想扫描 b/g 接口(interface)上的 WiFi,我想在每个 channel 上嗅探数据包,在每个 channel 上花费 100 毫秒。我最大的要求之一是不存储我收到的数据包(因为磁盘空间较少),我的应用程序将解析数据包,检索 Tx MAC 和 RSSI,并构建列表(MAC、Avg RSSI、#Records)在每一分钟结束时,然后清除此列表并重新开始。

我想出了两种在 linux 上进行 channel 跳跃的方法:

方案一:在C语言中使用wi_set_channel(struct wif *, channel number)系统调用,并在C语言中编写代码嗅探所有数据包

选项 2:使用 linux 命令iw dev wlan0 set channel 4,并使用 python+scapy 或 C 等任何语言嗅探数据包

我想知道两者中哪一个效率更高(如果有的话),以便 WiFi 接口(interface)切换到不同 channel 的延迟/等待时间最小。我怀疑这种延迟意味着在切换到不同 channel 时丢失数据包,是这样吗?

我还想知道在 linux 中解决这个问题的其他一些方法。

最佳答案

直接回答您的第一个问题,使用选项 1 并让两个线程执行工作 - 一个线程使用从 channel 收集的数据包填充内存中的循环缓冲区,第二个线程按顺序处理它们。您可以根据处理线程的测量性能和其他因素(如果有)确定最佳数据包丢弃算法。

至于第二个问题,我会同意上面的内容,因为您可以完全控制如何调整算法,而不是依赖于固定的处理工具。

关于linux - 在 Linux 中使用 channel 跳跃进行数据包嗅探,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21251404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com