| #!/usr/bin/python |
| |
| import dbus |
| |
| def extract_values(values): |
| val = "{" |
| for key in list(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 list(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)) |
| |
| print() |