2015-01-27 2 views
1

Я хочу получить все физические интерфейсы в системе, я видел много ссылок на getifaddrss, но он получает все интерфейсы, невзирая на то, что это vlan/macvlan или физический интерфейс. Я могу только предположить, что netlink сможет это сделать (когда сокет создается из сетевого пространства имен).Как получить все физические интерфейсы

ответ

0

Использование sysfs - просто перейдите /sys/class/net. Он также продемонстрирует взаимосвязь между устройствами, такими как склеивание, мосты. Однако VLAN можно угадать только из названия устройства (есть патчи, которые связывают 8021q с sysfs, но они не были приняты в ядро).

Это мой код, который делает следующее: https://github.com/myaut/tsload/blob/master/agent/lib/libhostinfo/plat/linux/netinfo.c

Смежные вопросы