2012-12-20 54 views
2

我在DBus-python中編寫了一個python腳本,通過網絡管理器獲取有關可用訪問點的信息。我可以正確獲取ssid,mac地址,信號強度值。雖然當我嘗試獲取WpaFlags時,我只是得到一些整數值。我想,我應該如何使用「NM_802_11_AP_SEC」 但我不知道如何。我會很感激任何建議。DBus-Python網絡管理器腳本 - WpaFlags問題

可讀結果:

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

WpaFlags(和其他*標誌)是由位標誌組成的整數,這裏是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"