DBus-Python 网络管理器脚本 - WpaFlags 问题
Posted
技术标签:
【中文标题】DBus-Python 网络管理器脚本 - WpaFlags 问题【英文标题】:DBus-Python Network Manager script - WpaFlags issue 【发布时间】:2012-12-08 11:29:47 【问题描述】:我正在 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")
encryption=0 如果没有加密-没关系- 我得到的其他结果是 324 和 392
【问题讨论】:
【参考方案1】: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。
这是一个关于位标志的一般问题: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"
【讨论】:
以上是关于DBus-Python 网络管理器脚本 - WpaFlags 问题的主要内容,如果未能解决你的问题,请参考以下文章
如何禁用所有 systemd 网络配置功能并运行我的网络初始化 shell 脚本?