#!/usr/bin/python | |
import dbus | |
def extract_values(values): | |
val = "{" | |
for key in values.keys(): | |
val += " " + key + "=" | |
if key in ["Servers", "Excludes"]: | |
val += extract_list(values[key]) | |
else: | |
val += str(values[key]) | |
val += " }" | |
return val | |
def extract_list(list): | |
val = "[" | |
for i in list: | |
if type(i).__name__ == 'Dictionary': | |
val += extract_values(i) | |
elif type(i).__name__ == 'Struct': | |
val += extract_list(i) | |
else: | |
val += " " + str(i) | |
val += "]" | |
return val | |
bus = dbus.SystemBus() | |
manager = dbus.Interface(bus.get_object('net.connman.vpn', '/'), | |
'net.connman.vpn.Manager') | |
for entry in manager.GetConnections(): | |
path = entry[0] | |
properties = entry[1] | |
print "[ %s ]" % (path) | |
for key in properties.keys(): | |
if key in ["IPv4", "IPv6" ]: | |
val = extract_values(properties[key]) | |
elif key in ["Nameservers","ServerRoutes","UserRoutes"]: | |
val = extract_list(properties[key]) | |
else: | |
val = str(properties[key]) | |
print " %s = %s" % (key, val) | |