J'écris une petite petite application que je souhaite soumettre au tableau Ubuntu App Review, et j'aimerais, entre autres choses, afficher les noms des SSID sans fil détectés dans une liste déroulante. C'est une application PyGI.
Quelqu'un at-il des indications sur la manière dont je peux obtenir ces SSID auprès du système, de préférence via une API Python? De dbus? De NetworkManager?
Vous pouvez le faire facilement à partir des liaisons pygi de NetworkManager:
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()
Ou directement de DBus, voir http://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/examples/python/show-bssids.py
Si vous êtes enclin à écrire rapidement ceci dans Shell; un moyen simple de demander cela à NetworkManager consiste à utiliser:
nmcli dev wifi list
Ou utilisez iwlist scan , ou mieux: iw dev wlan0 scan (ou ... scan dump ), après avoir installé le iw package.
Une option consiste à exécuter iwlist scan
sur la ligne de commande, mais il doit être exécuté en tant que racine