Как программно получить список беспроводных SSID в диапазоне от NetworkManager

Я пишу небольшое маленькое приложение, которое хочу отправить на доску просмотра приложений Ubuntu, и я хотел бы, чтобы оно показывало имена обнаруженных беспроводных SSID в поле со списком. Это приложение PyGI.

Кто-нибудь получил какие-либо указания о том, как я могу получить эти SSID из системы, предпочтительно через Python API? Из дбус? Из NetworkManager?

6
задан 16 May 2012 в 18:14

2 ответа

Вы можете легко сделать это из привязок 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 Install iw .

0
ответ дан 16 May 2012 в 18:14

Один из вариантов - запустить iwlist scan в командной строке, но его нужно запустить как root

0
ответ дан 16 May 2012 в 18:14

Другие вопросы по тегам:

Похожие вопросы: