当我给
我的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。
答案 0 :(得分:3)
使用if_nametoindex()函数。
unsigned int idx = if_nametoindex("eth0");
if (idx == 0) {
perror("if_nametoindex");
}
答案 1 :(得分:2)
用于处理网络接口的标准linux c库是 getifaddrs 。
您可以从getifaddrs获取现有界面的链接列表,并计算它们,直到找到您要查找的界面。
除此之外,还不完全清楚为什么你需要那个号码(我得到XY problem预感)。我是这么说的,因为操作系统按名称来区分接口。