【问题标题】:WiFi networks RSSI level extraction in Python/UbuntuPython/Ubuntu 中的 WiFi 网络 RSSI 级别提取
【发布时间】:2018-01-30 01:06:21
【问题描述】:

我要解决的问题是提取笔记本电脑可发现的所有 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 设置。

谢谢!

【问题讨论】:

  • 了解RSSI没有标准,每个供应商的做法都不一样,即使是同一供应商的不同型号。您无法比较供应商之间的 RSSI,有时您无法比较同一供应商的不同设备型号之间的 RSSI。
  • 这很好,我只需要查看信号中的模式,所以即使我跟踪的每个热点都有不同的 RSSI 下限和上限,我只需要跟踪模式加强/削弱。

标签: python ubuntu networking wifi wireless


【解决方案1】:

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

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

watch -n1 iwconfig

【讨论】:

  • 它似乎提供与 /proc/net/wireless 相同的信息,我会冒险说这是它从中获取信息的地方,这无助于我获取有关的数据我的电脑可以发现网络,但我的电脑没有连接到
  • 投票支持 watch 命令。 watch -n1 -d cat /proc/net/wireless 非常适合监控 wifi 信号。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-16
  • 1970-01-01
相关资源
最近更新 更多