我正在用DBus-python编写一个python脚本,用于通过Network Manager获取有关可用接入点的一些信息。我可以正确地获取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")encryption=0如果没有加密-这没问题-我得到的其他结果是324和392
发布于 2013-01-04 22:37:10
WpaFlags (和其他*标志)是一个由位标志组成的整数,这里是NM_802_11_AP_SEC。所以324ix 0x144 (十六进制)是NM_802_11_AP_SEC_KEY_MGMT_PSK | NM_802_11_AP_SEC_GROUP_TKIP | NM_802_11_AP_SEC_PAIR_TKIP。
这里有一个关于位标志的一般问题: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"https://stackoverflow.com/questions/13980741
复制相似问题