Então, o que estou procurando é um índice de interface (ou nome), mas o real.
if_nametoindex(3)
e ioctl(2)
não parece me ajudar aqui. Agora, a única maneira de descobrir como fazer isso é via /sys
. Deixe-me demonstrar, por exemplo, o que eu preciso:
# 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
Existe uma maneira de fazer isso com uma chamada de função ou a única maneira é sysfs
?
ip link show
faz (provavelmente usando a API do netlink)/proc/net/vlan/config
ou/proc/net/vlan/bond0.1007
se é uma interface vlan./sys
./proc
ou/sys
são mais ou menos os mesmos nesse sentido. Eu só queria verificar se existe um syscall para obter esse tipo de informação, acontece que não existe.RTM_GETLINK
mensagem e procure oIFLA_LINK
atributo em resposta.Respostas:
O comando
ip link show
é provavelmente o que você deseja. Ele exibirá o índice na frente das informações da interface. Exemplo abaixo de um sistema com NICs ligadas.fonte