Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

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
add comment

2 Answers 2

up vote 9 down vote accepted

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

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

Or from DBus directly, see http://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/examples/python/show-bssids.py

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
add comment

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
add comment

Your Answer

 
discard

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.