如何获得 Python 的 WLAN 信号强度?
How can I get the signal strength of WLANs with 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")))
我得到类似的东西:
blabla1:: 2 <- The strongest signal
blabla2:: \x0c <- The weakest signal
DarkRoom:: \x13
FRITZ!Box 6340 Cable:: \n
FRITZ!Box 6360 Cable:: \x0e
FRITZ!Box 7272:: \x0c
FRITZ!Box Fon WLAN 7270:: \t
blabla3:: \x07
blabla4:: \x11
blabla5:: \x0c
blabla6:: (
blabla7:: \x07
blabla8:: \n
teco:: \n
wkit-802.1x:: \x14
blabla9:: \t
如何从中获得有意义的价值?
尝试更新您的 python-networkmanager 代码。访问它的 github 你可以看到代码在 18 天前更新了注释:“Decode signal strengths to integers”
您可以在此处查看代码更改:
https://github.com/seveas/python-networkmanager/commit/079ebfef92dec3d8ad49d9a5df1e569c68e3355a
您感兴趣的代码是(字节到整数的转换):
struct.unpack('B', strength)[0]
请注意,结果是一个元组,因此 [0]
。有关解包字节字符串的更多信息可以在 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")))
我得到类似的东西:
blabla1:: 2 <- The strongest signal
blabla2:: \x0c <- The weakest signal
DarkRoom:: \x13
FRITZ!Box 6340 Cable:: \n
FRITZ!Box 6360 Cable:: \x0e
FRITZ!Box 7272:: \x0c
FRITZ!Box Fon WLAN 7270:: \t
blabla3:: \x07
blabla4:: \x11
blabla5:: \x0c
blabla6:: (
blabla7:: \x07
blabla8:: \n
teco:: \n
wkit-802.1x:: \x14
blabla9:: \t
如何从中获得有意义的价值?
尝试更新您的 python-networkmanager 代码。访问它的 github 你可以看到代码在 18 天前更新了注释:“Decode signal strengths to integers”
您可以在此处查看代码更改: https://github.com/seveas/python-networkmanager/commit/079ebfef92dec3d8ad49d9a5df1e569c68e3355a
您感兴趣的代码是(字节到整数的转换):
struct.unpack('B', strength)[0]
请注意,结果是一个元组,因此 [0]
。有关解包字节字符串的更多信息可以在 python 文档中找到: