Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm writing a small little app that I want to submit to the Ubuntu App Review board, and one thing I'd like to do is for it to show the names of the detected Wireless SSIDs in a combo box. It's a PyGI app.

Has anyone got any pointers on how I can get those SSIDs from the system, preferably through a Python API? From dbus? From NetworkManager?

share|improve this question
up vote 13 down vote accepted

You can do this easily from NetworkManager's pygi bindings:

from gi.repository import NetworkManager, NMClient

nmc =
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()

Or from DBus directly, see

If you're inclined to just quickly script this in shell; an easy way to ask NetworkManager for this is to use:

nmcli dev wifi list

Or use iwlist scan, or better: iw dev wlan0 scan (or ... scan dump), after installing the iw Install iw package.

share|improve this answer
Nice, exactly what I was looking for, thanks! – David Planella May 16 '12 at 14:31
I realise this is an old question, but is there a place where NetworkManager and NMClient are documented? – Chinmay Kanchi Dec 12 '13 at 10:18

One option is to run iwlist scan on the command line, but it has to be run as root

share|improve this answer
Ah, that's something I can use, but I'd prefer accessing them at an API level rather than through command line and subprocess calls, so I think I'll end up accepting Mathieu's answer. In any case, thanks for your answer! – David Planella May 16 '12 at 14:30

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.