如何获得所有物理接口

时间:2015-01-27 16:57:56

标签: c++ linux interface netlink

我想获得系统上的所有物理接口,我看到很多对getifaddrss的引用,但它获取所有接口,无论是vlan / macvlan还是物理接口。 我只能假设netlink能够这样做(当从网络命名空间创建套接字时)。

1 个答案:

答案 0 :(得分:0)

使用 sysfs - 只需遍历/sys/class/net即可。它还将显示绑定,桥接等设备之间的关系。但是,VLAN可能只能从设备名称中猜出(有一些补丁将8021q绑定到sysfs,但它们不被内核接受。)

以下是执行此操作的代码:https://github.com/myaut/tsload/blob/master/agent/lib/libhostinfo/plat/linux/netinfo.c