Donc ce que je recherche, c'est un index (ou un nom) d'interface mais le vrai.
if_nametoindex(3)
et ioctl(2)
ne semblent pas m'aider ici. Maintenant, la seule façon dont j'ai trouvé comment le faire est via /sys
. Permettez-moi de montrer par exemple ce dont j'ai besoin:
# 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-t-il un moyen de le faire avec un appel de fonction ou le seul moyen est sysfs
?
ip link show
fait (probablement en utilisant l'API Netlink)/proc/net/vlan/config
ou/proc/net/vlan/bond0.1007
s'il s'agit d'une interface vlan./sys
./proc
ou/sys
sont plus ou moins les mêmes dans ce sens. Je voulais juste vérifier s'il y a un syscall pour obtenir ce genre d'informations, il se trouve que non.RTM_GETLINK
message et recherchez l'IFLA_LINK
attribut en réponse.Réponses:
La commande
ip link show
est probablement ce que vous voulez. Il affichera l'index devant les informations d'interface. Exemple ci-dessous d'un système avec des NIC liés.la source