我正在DBus-python中编写一个python脚本,通过网络管理器获取有关可用访问点的一些信息。我可以正确地获得ssid,mac地址,信号强度值。虽然当我尝试获取WpaFlags时,我只获得了一些整数值。我想,我应该怎么用“NM_802_11_AP_SEC” 但我不知道怎么做。我会感激任何建议。
可读结果:
ssid = ap_prop_iface.Get("org.freedesktop.NetworkManager.AccessPoint","Ssid",byte_arrays=True)
hwaddr = ap_prop_iface.Get("org.freedesktop.NetworkManager.AccessPoint", "HwAddress")
结果难以理解:
encryption = ap_prop_iface.Get("org.freedesktop.NetworkManager.AccessPoint", "WpaFlags")
如果没有加密,加密= 0 - 这没关系 - 我得到的其他结果是324和392
答案 0 :(得分:0)
WpaFlags(和其他* Flags)是一个由位标志组成的整数,这里是NM_802_11_AP_SEC。所以324 ix 0x144(十六进制)即NM_802_11_AP_SEC_KEY_MGMT_PSK | NM_802_11_AP_SEC_GROUP_TKIP | NM_802_11_AP_SEC_PAIR_TKIP。
以下是关于位标志的SO问题:Bitwise operation and usage。
示例:
NM_802_11_AP_SEC_PAIR_TKIP = 0x04 // declare other constants too...
flags = 324 // from an API call really
if flags & NM_802_11_AP_SEC_PAIR_TKIP:
print "PAIR_TKIP is enabled"