| #!/usr/bin/env python3 |
| # Copyright 2019 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| from __future__ import print_function |
| |
| import sys |
| |
| import dbus |
| import flimflam |
| |
| if len(sys.argv) < 2: |
| print('Usage: %s <device | interface>' % (sys.argv[0])) |
| sys.exit(1) |
| |
| (_, name) = sys.argv |
| |
| flim = flimflam.FlimFlam(dbus.SystemBus()) |
| |
| device = flim.FindElementByNameSubstring('Device', name) |
| if device is None: |
| device = flim.FindElementByPropertySubstring('Device', 'Interface', name) |
| if device is None: |
| print('No such device or interface %s' % name) |
| sys.exit(1) |
| |
| properties = device.GetProperties() |
| for path in properties['IPConfigs']: |
| ipconfig = flim.GetObjectInterface('IPConfig', path) |
| ipconfig_properties = ipconfig.GetProperties() |
| |
| print('[ %s ]' % (ipconfig.object_path)) |
| |
| for key in ipconfig_properties.keys(): |
| print(' %s = %s' % |
| (key, flimflam.convert_dbus_value(ipconfig_properties[key], 8))) |
| |
| print('') |