Так что я ищу, это индекс интерфейса (или имя), но реальный.
if_nametoindex(3)
и ioctl(2)
, похоже, не поможет мне здесь. Теперь я нашел единственный способ сделать это через /sys
. Позвольте мне продемонстрировать на примере, что мне нужно:
# cat /sys/class/net/bond0.1007/ifindex
26
# cat /sys/class/net/bond0.1007/iflink
23 <-- I need either this or a reference to bond0
# cat /sys/class/net/bond0/ifindex
23
Есть ли способ сделать это с помощью вызова функции или единственный способ sysfs
?
ip link show
делает (вероятно, используя API NetLink)/proc/net/vlan/config
или/proc/net/vlan/bond0.1007
это интерфейс VLAN./sys
./proc
или/sys
более или менее одинаковы в этом смысле. Я просто хотел проверить, есть ли системный вызов для получения такой информации, оказывается, что нет.RTM_GETLINK
сообщения и поискIFLA_LINK
атрибута в ответе.Ответы:
Команда,
ip link show
вероятно, то, что вы хотите. Он будет отображать индекс перед информацией интерфейса. Пример ниже из системы со связанными сетевыми картами.источник