如何使用Python获得wlan的信号强度?

2024-05-16 05:49:50 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码获取所有访问点并显示它们的SSID以及它们的Strength属性。但是,我不知道这个属性是如何编码的:

import NetworkManager
for dev in NetworkManager.NetworkManager.GetDevices():
    if dev.DeviceType != NetworkManager.NM_DEVICE_TYPE_WIFI:
        continue
    aps = [ap for ap in dev.SpecificDevice().GetAccessPoints()]
    for ap in sorted(aps, key=lambda ap: ap.Ssid):
        print(u"%s:: %s" % (ap.Ssid, ap.Strength.encode("unicode_escape")))

我得到的东西是:

^{pr2}$

如何从中获得有意义的价值?在


Tags: 代码indevimport编码forif属性
1条回答
网友
1楼 · 发布于 2024-05-16 05:49:50

尝试更新python networkmanager代码。访问它的github,你可以看到代码是在18天前更新的,上面写着:“将信号强度解码为整数”

您可以在此处看到代码更改: https://github.com/seveas/python-networkmanager/commit/079ebfef92dec3d8ad49d9a5df1e569c68e3355a

您感兴趣的代码是(字节到整数的转换):

struct.unpack('B', strength)[0]

请注意,结果是一个元组,因此[0]。有关解包字节字符串的更多信息可以在python文档中找到:

https://docs.python.org/2/library/struct.html

相关问题 更多 >