in vmassist/linux/vmassist.py [0:0]
def getInterfaces():
# Get all interfaces present in the system except for loopback, return as a dict
# -- May have an issue with multiple VIPs on a NIC
ipOut = subprocess.run(['ip', '-j', 'address', 'show'], stdout=subprocess.PIPE)
intJSON = json.loads(ipOut.stdout.decode('utf-8'))
addresses = {}
for iface in intJSON:
iface_name = iface.get('ifname')
if iface_name != "lo":
addresses[iface_name] = {}
addresses[iface_name]['mac'] = iface.get('address')
for addr_info in iface.get('addr_info', []):
if addr_info.get('family') == 'inet': # Only IPv4 addresses
addresses[iface_name]['ip'] = addr_info.get('local')
return addresses