Я пишу небольшое маленькое приложение, которое хочу отправить на доску просмотра приложений Ubuntu, и я хотел бы, чтобы оно показывало имена обнаруженных беспроводных SSID в поле со списком. Это приложение PyGI.
Кто-нибудь получил какие-либо указания о том, как я могу получить эти SSID из системы, предпочтительно через Python API? Из дбус? Из NetworkManager?
Вы можете легко сделать это из привязок PyG в 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()
Или непосредственно из DBus, см. http://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/examples/python. /show-bssids.py
Если вы склонны просто быстро написать это в shell; Самый простой способ запросить у NetworkManager это:
nmcli dev wifi list
Или использовать iwlist scan или лучше: iw dev wlan0 scan (или ... scan dump ), после установки пакета iw .
Один из вариантов - запустить iwlist scan
в командной строке, но его нужно запустить как root