/sysを経由せずにネットワークインタフェースインデックスを取得できますか?

/sysを経由せずにネットワークインタフェースインデックスを取得できますか?

だから私が探しているのはインターフェイスインデックス(または名前)ですが、実際のものです。私には役に立たないようif_nametoindex(3)ですioctl(2)。これでこれを行う方法を見つけた唯一の方法は次のとおりです/sys

# 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

関数呼び出しでこれを行う方法はありますか、それとも唯一の方法ですかsysfs

ベストアンサー1

このコマンドがip link show望むものかもしれません。インターフェイス情報の前にインデックスが表示されます。次の例は、ボンディングされたNICを持つシステムの例です。

# 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

おすすめ記事