Was ich also suche, ist ein Schnittstellenindex (oder Name), aber der echte.
if_nametoindex(3)
und ioctl(2)
scheinen mir hier nicht zu helfen. Jetzt habe ich nur noch herausgefunden, wie das geht /sys
. Lassen Sie mich am Beispiel zeigen, was ich brauche:
# 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
Gibt es eine Möglichkeit, dies mit einem Funktionsaufruf zu tun, oder ist die einzige Möglichkeit sysfs
?
ip link show
(wahrscheinlich mit der Netlink-API)/proc/net/vlan/config
oder/proc/net/vlan/bond0.1007
ob es sich um eine VLAN-Schnittstelle handelt./sys
./proc
oder/sys
sind in diesem Sinne mehr oder weniger gleich. Ich wollte nur überprüfen, ob es einen Systemaufruf gibt, um diese Art von Informationen zu erhalten. Es stellt sich heraus, dass dies nicht der Fall ist.RTM_GETLINK
Nachricht ausgeben und alsIFLA_LINK
Antwort nach Attributen suchen .Antworten:
Der Befehl
ip link show
ist wahrscheinlich das, was Sie wollen. Der Index wird vor den Schnittstelleninformationen angezeigt. Beispiel unten aus einem System mit gebundenen NICs.quelle