【发布时间】:2018-01-30 01:06:21
【问题描述】:
我要解决的问题是提取笔记本电脑可发现的所有 wifi 网络的 RSSI 级别。 我的要求是能够查看所有 wifi 网络的 RSSI,并且能够每秒左右轮询新数据,因为我正在尝试跟踪在空间中移动的计算机的 wifi RSSI。
到目前为止,我已经听说并测试了两种解决方案,使用subprocess 启动以下命令并解析它们的输出:
-
cat /proc/net/wireless,它只输出当前网络的信息,显然没有办法用这个文件输出所有网络的信息。它以对我来说足够好的间隔更新,但同样,不是所有的网络。 -
iwlist scan,仅输出当前网络的信息,除非与sudo一起使用,但由于我希望在一个从内部运行iwlist sccan命令的程序中自动执行此操作,因此 sudo 是个问题。此外,与以前的选项相比,它似乎更新 RSSI 级别非常缓慢,这是不行的,因为我需要在第二个更新 RSSI 级别。
我很想听听任何其他获取此数据的解决方案。我会注意到我正在用 python 构建程序,所以任何库都可以,或者只是一个我将从 python 程序中调用的 cli 工具。
目前正在使用 Ubuntu 16.04 设置。
谢谢!
【问题讨论】:
-
了解RSSI没有标准,每个供应商的做法都不一样,即使是同一供应商的不同型号。您无法比较供应商之间的 RSSI,有时您无法比较同一供应商的不同设备型号之间的 RSSI。
-
这很好,我只需要查看信号中的模式,所以即使我跟踪的每个热点都有不同的 RSSI 下限和上限,我只需要跟踪模式加强/削弱。
标签: python ubuntu networking wifi wireless