2012-12-20 4 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
을 OK- 하시면서에는 암호화가없는 경우

WpaFlags (및 기타 * 플래그)는 비트 플래그로 구성된 정수입니다 (여기에서 NM_802_11_AP_SEC). 그래서 324 ix 0x144 (16 진수)는 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"