Python/Ubuntu 中的 WiFi 网络 RSSI 级别提取



我试图解决的问题是提取我的笔记本电脑可发现的所有wifi网络的RSSI级别。 我的要求是能够查看所有wifi网络的RSSI,并且能够每秒左右轮询新数据,因为我正在尝试跟踪在空间中移动的计算机的wifi RSSI。

到目前为止,我已经听说过并测试了两种解决方案,使用subprocess启动以下命令并解析它们的输出:

  1. cat /proc/net/wireless,它仅输出当前网络的信息,并且似乎没有办法使用此文件输出所有网络的信息。它以足够好的间隔更新对我来说,但同样,并非所有网络。
  2. iwlist scan,它仅输出当前网络的信息,除非与sudo一起使用,但由于我希望在将从内部运行iwlist sccan命令的程序中自动执行此操作,因此 sudo 是一个问题。此外,与上一个选项相比,它似乎更新 RSSI 级别非常慢,这是不行的,因为我需要第二个更新 RSSI 级别。

我很想听听任何其他解决方案来获取这些数据。我会注意到我正在用python构建程序,所以任何库都很好,或者只是一个我将从python程序中调用的cli工具。

目前正在使用 Ubuntu 16.04 设置。

谢谢!

在命令行上,您可以使用以下命令:iwconfig并查找"Link Quality""Signal level"值。

或者使用此命令每秒更新一次 iwconfig 的输出:

watch -n1 iwconfig

最新更新