2

ネットワークマネージャーを介して利用可能なアクセスポイントに関する情報を取得するために、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 です。

4

1 に答える 1

1

WpaFlags (およびその他の *Flags) は、ビット フラグ (ここでは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。

これは、一般的なビットフラグに関する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"
于 2013-01-04T14:37:09.633 に答える