Thanks, this code works perfectly in ubuntu 10.04.<div>one question though, is dbus usually implemented in other distribution of linux?<br><br><div class="gmail_quote">On Mon, May 16, 2011 at 12:57 PM, Anssi Saari <span dir="ltr"><<a href="mailto:as@sci.fi">as@sci.fi</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">Neal Becker <<a href="mailto:ndbecker2@gmail.com">ndbecker2@gmail.com</a>> writes:<br>
<br></div>One possible solution in Linux is asking NetworkManager, if it's in<br>
use. It knows which interfaces are active and what kind they are (LAN,<br>
WLAN, WWAN etc.) NetworkManager communicates via dbus and even<br>
includes python example scripts. So here's my scriptlet based on<br>
NetworkManager example nm-state.py. This one prints out all active<br>
devices and their type and IP address. Easily modified to print only<br>
WLAN types.<br>
<br>
import dbus, socket, struct<br>
<br>
bus = dbus.SystemBus()<br>
<br>
proxy = bus.get_object("org.freedesktop.NetworkManager",<br>
"/org/freedesktop/NetworkManager")<br>
manager = dbus.Interface(proxy, "org.freedesktop.NetworkManager")<br>
<br>
# Get device-specific state<br>
devices = manager.GetDevices()<br>
for d in devices:<br>
dev_proxy = bus.get_object("org.freedesktop.NetworkManager", d)<br>
prop_iface = dbus.Interface(dev_proxy, "org.freedesktop.DBus.Properties")<br>
<br>
# Get the device's current state and interface name<br>
state = prop_iface.Get("org.freedesktop.NetworkManager.Device", "State")<br>
name = prop_iface.Get("org.freedesktop.NetworkManager.Device", "Interface")<br>
ifa = "org.freedesktop.NetworkManager.Device"<br>
type = prop_iface.Get(ifa, "DeviceType")<br>
addr = prop_iface.Get(ifa, "Ip4Address")<br>
<br>
# and print them out<br>
if state == 8: # activated<br>
addr_dotted = socket.inet_ntoa(struct.pack('<L', addr))<br>
<br>
s = "Device %s is activated and has type %s and address %s"<br>
print s % (name, type, addr_dotted)<br>
else:<br>
print "Device %s is not activated" % name<br>
<div><div></div><div class="h5"><br>
<br>
<br>
--<br>
<a href="http://mail.python.org/mailman/listinfo/python-list" target="_blank">http://mail.python.org/mailman/listinfo/python-list</a><br>
</div></div></blockquote></div><br></div>