blob: 98f9179d56954eb4af652acbf6b94a3254e760e0 [file] [log] [blame]
# Copyright (C) 2022 John Kacur
""" A few functions similar to ethtool """
import os
import socket
def get_active_devices():
""" return a list of network devices """
ret = []
for device in socket.if_nameindex():
ret.append(device[1])
return ret
def get_module(intf):
""" return the kernel module for the given network interface """
if intf == 'lo':
return ""
myp = f'/sys/class/net/{intf}/device/driver'
if os.path.exists(myp):
return os.path.basename(os.readlink(myp))
if os.path.exists(f'/sys/class/net/{intf}/bridge'):
return 'bridge'
if os.path.exists(f'/sys/class/net/{intf}/tun_flags'):
return 'tun'
return ""
if __name__ == "__main__":
nics = get_active_devices()
print(f'nics = {nics}')
for intf in nics:
driver = get_module(intf)
if driver:
print(f'{intf}, {driver}')
else:
print(f'{intf}')