私はUbuntu App Reviewボードに提出したい小さな小さなアプリを書いています。私がやりたいことの1つは、コンボボックスに検出されたワイヤレスSSIDの名前を表示することです。 PyGIアプリです。
できればPython APIを使用して、システムからそれらのSSIDを取得する方法を教えてくれる人はいますか? dbusからですか? NetworkManagerからですか?
NetworkManagerのpygiバインディングからこれを簡単に行うことができます。
from gi.repository import NetworkManager, NMClient
nmc = NMClient.Client.new()
devs = nmc.get_devices()
for dev in devs:
if dev.get_device_type() == NetworkManager.DeviceType.WIFI:
for ap in dev.get_access_points():
print ap.get_ssid()
またはDBusから直接、 http://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/examples/python/show-bssids.py を参照してください
シェルでこれをすぐにスクリプト化したい場合は、 NetworkManagerにこれを依頼する簡単な方法は以下を使用することです:
nmcli dev wifi list
または、iwlist scan以上を使用します:iw dev wlan0 scan(または... scan dump)、 iw パッケージ。
1つのオプションは、コマンドラインでiwlist scan
を実行することですが、rootとして実行する必要があります