Единственный способ посмотреть на атрибут IFLA_INFO_KIND
, возвращенный из RTM_GETLINK
. Это необязательный атрибут, который отсутствует для физических устройств, а также для кольцевого устройства lo
.
Когда он присутствует, он содержит строку, например veth
, bridge
и так далее. Сравнивая это со списком хорошо -известных типов виртуальных каналов (, см. ip link help
), затем идентифицирует виртуальные сетевые интерфейсы, оставляя все другие сетевые интерфейсы на приблизительном поле «физический сетевой интерфейс».
Не идеально, но работает без обращения к /sys/class/net/[IFNAME]
, который не всегда правильно присутствует и требуетsysfs
(повторного )монтажа, см. также Определить, является ли сетевой интерфейс veth
используя /sys/class/net
?
Вы можете использовать опцию top -1
.
Но установленный вариант top
может различаться в зависимости от дистрибутива.