Entonces, lo que estoy buscando es un índice de interfaz (o nombre) pero real.
if_nametoindex(3)
y ioctl(2)
no parecen ayudarme aquí. Ahora la única forma en que encontré cómo hacer esto es a través de /sys
. Permítanme demostrar, por ejemplo, lo que necesito:
# 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
¿Hay alguna manera de hacerlo con una llamada a función o la única es sysfs
?
Vea también
—
Stéphane Chazelas
/proc/net/vlan/config
o /proc/net/vlan/bond0.1007
si es una interfaz vlan.
@ StéphaneChazelas Gracias. Decidí seguir usando
—
UVV
/sys
. /proc
o /sys
son más o menos lo mismo en ese sentido. Solo quería comprobar si hay una llamada al sistema para obtener este tipo de información, resulta que no la hay.
las llamadas al sistema serían sendmsg / recvmsg utilizando la API de socket de enlace de red.
—
Stéphane Chazelas
Documentación de rtnetlink: man7.org/linux/man-pages/man7/rtnetlink.7.html : emita un
—
ecatmur
RTM_GETLINK
mensaje y busque el IFLA_LINK
atributo en la respuesta.
ip link show
hace (probablemente usando la API de netlink)