Est-il possible d'obtenir l'index de l'interface réseau non via / sys?


11

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?


Regardez ce que ip link showfait (probablement en utilisant l'API Netlink)
Stéphane Chazelas

Voir aussi /proc/net/vlan/configou /proc/net/vlan/bond0.1007s'il s'agit d'une interface vlan.
Stéphane Chazelas

@ StéphaneChazelas Merci. J'ai décidé de continuer à utiliser /sys. /procou /syssont 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.
UVV

1
les syscalls seraient le sendmsg / recvmsg utilisant l'API de socket netlink.
Stéphane Chazelas

1
documentation rtnetlink: man7.org/linux/man-pages/man7/rtnetlink.7.html - émettez unRTM_GETLINK message et recherchez l' IFLA_LINKattribut en réponse.
ecatmur

Réponses:


1

La commande ip link showest 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.

# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 9214 qdisc mq master bond0 portid 000f53000000 state UP mode DEFAULT qlen 1000
    link/ether 00:0f:53:00:00:00 brd ff:ff:ff:ff:ff:ff
3: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 9214 qdisc mq master bond0 portid 000f53000001 state UP mode DEFAULT qlen 1000
    link/ether 00:0f:53:00:00:00 brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 9214 qdisc noqueue state UP mode DEFAULT qlen 1000
    link/ether 00:0f:53:00:00:00 brd ff:ff:ff:ff:ff:ff
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.