Có thể lấy chỉ số giao diện mạng không qua / sys?


11

Vì vậy, những gì tôi đang tìm kiếm là một chỉ số giao diện (hoặc tên) nhưng là chỉ số thực. if_nametoindex(3)ioctl(2)dường như không giúp tôi ở đây. Bây giờ cách duy nhất tôi tìm thấy làm thế nào để làm điều này là thông qua /sys. Hãy để tôi chứng minh trên ví dụ những gì tôi cần:

# 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

Có cách nào để làm điều đó với một cuộc gọi chức năng hay cách duy nhất là sysfs?


Nhìn vào những gì ip link show(có thể sử dụng api netlink)
Stéphane Chazelas

Xem thêm /proc/net/vlan/confighoặc /proc/net/vlan/bond0.1007nếu đó là một giao diện vlan.
Stéphane Chazelas

@ StéphaneChazelas Cảm ơn. Tôi quyết định tiếp tục sử dụng /sys. /prochoặc /sysít nhiều giống nhau theo nghĩa đó. Tôi chỉ muốn kiểm tra nếu có một tòa nhà cao tầng để có được loại thông tin này, hóa ra là không có.
UVV

1
các tòa nhà sẽ là sendmsg / recvmsg bằng cách sử dụng API socket netlink.
Stéphane Chazelas

1
tài liệu rtnetlink: man7.org/linux/man-pages/man7/rtnetlink.7.html - phát hành RTM_GETLINKthông báo và tìm IFLA_LINKthuộc tính để trả lời.
ecatmur

Câu trả lời:


1

Lệnh ip link showcó thể là những gì bạn muốn. Nó sẽ hiển thị chỉ mục trước thông tin giao diện. Ví dụ dưới đây từ một hệ thống với các NIC ngoại quan.

# 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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.