如何以编程方式检索eth0 id

时间:2014-08-25 11:51:49

标签: c++ c unix ipv6

当我给 我的Linux机器中/sbin/ip addr show。我输出如下

3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:00:21:02:16:6b brd ff:ff:ff:ff:ff:ff .. so on

如何在C或CPP中以编程方式检索eth0的上述ID 3。

2 个答案:

答案 0 :(得分:3)

使用if_nametoindex()函数。

unsigned int idx = if_nametoindex("eth0");
if (idx == 0) {
    perror("if_nametoindex");
 }

答案 1 :(得分:2)

用于处理网络接口的标准linux c库是 getifaddrs

您可以从getifaddrs获取现有界面的链接列表,并计算它们,直到找到您要查找的界面。

除此之外,还不完全清楚为什么你需要那个号码(我得到XY problem预感)。我是这么说的,因为操作系统按名称来区分接口。