如何从 Linux 中的 C 程序获取网络接口的类型名称?
我尝试使用getifaddr
来访问网络接口,并且得到了我需要的一切,除了它的类型名称。有什么想法可以做到吗?
我还是 Linux 的新手,因此对任何变通方法或示例代码的任何评论都将不胜感激。
编辑
详细说明问题。基本上,在做的时候ifconfig
我可以得到这样的东西:
eth0 链路封装:以太网 HWaddr 00:0C:29:40:93:9C inet 地址:192.168.154.102 广播:192.168.154.255 掩码:255.255.255.0 inet6 地址:fe80::20c:29ff:fe40:939c/64 范围:链接 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX 数据包:14785 错误:0 丢弃:0 超限:0 帧:0 TX 数据包:429 错误:0 丢弃:0 超限:0 运营商:0 碰撞:0 txqueuelen:1000 RX 字节:961439 (938.9 KiB) TX 字节:71866 (70.1 KiB) 中断:67 基地址:0x2000
这是我理解的 eth0 是接口名称。虽然可以有多个网络接口(eth0、eth1、eth2)和多个虚拟接口(tap0、tap1 等)和无线接口,但它们都是以太网接口。
loopbacks 也一样,lo 作为接口名,它的接口是Local Loopback。
所以问题是,当我事先不知道使用了哪些接口以及有多少他们在机器里。
希望我能正确解释这一点。