2017-08-21 67 views
1

我试图解决的问题是提取我的笔记本电脑可发现的所有WiFi网络的RSSI水平。 我的要求是能够查看所有wifi网络的RSSI,并且能够每秒钟轮询新数据,因为我试图跟踪在一个空间中移动的计算机的wifi RSSI。WiFi网络在Python/Ubuntu中的RSSI水平提取

到目前为止,我听说过,并测试了两种解决方案,具有subprocess启动下面的命令和解析它们的输出:

  1. cat /proc/net/wireless,其输出仅为当前网络信息,而且似乎并不成为一种可以显示所有网络信息的方式。它对我来说有一个足够好的时间间隔更新,但是不是所有的网络。
  2. iwlist scan,它仅输出当前网络的信息,除非与sudo一起使用,但由于我希望在自动运行内部命令iwlist sccan的程序中使用sudo,因此sudo是个问题。此外,与前一个选项相比,它似乎更新RSSI电平非常缓慢,因为我需要RSSI电平由第二个更新。

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

目前正在使用Ubuntu 16.04安装程序。

谢谢!

+0

明白,有对RSSI没有标准,而且每家供应商做不同的看法,甚至来自同一厂商的不同型号之间。您无法比较供应商之间的RSSI,有时您无法比较来自同一供应商的不同设备型号之间的RSSI。 –

+0

对我来说这很好,我只需要看到信号中的模式,所以即使我跟踪的每个热点有不同的RSSI上下限,我需要跟踪的是增强/减弱的模式。 – noodlez040

回答

0

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

或使用该命令,它更新iwconfig的每一秒的输出:

watch -n1 iwconfig 
+0

它似乎给出了/ proc/net/wireless的相同信息,我会冒险并说这是从何处获取信息的地方,这并不能帮助我获取有关我的计算机可发现的网络的数据,但我的电脑没有连接 – noodlez040