我想获得系统上的所有物理接口,我看到很多对getifaddrss的引用,但它获取所有接口,无论是vlan / macvlan还是物理接口。
我只能假设netlink
能够这样做(当从网络命名空间创建套接字时)。
答案 0 :(得分:0)
使用 sysfs - 只需遍历/sys/class/net
即可。它还将显示绑定,桥接等设备之间的关系。但是,VLAN可能只能从设备名称中猜出(有一些补丁将8021q
绑定到sysfs,但它们不被内核接受。)
以下是执行此操作的代码:https://github.com/myaut/tsload/blob/master/agent/lib/libhostinfo/plat/linux/netinfo.c