在Linux中,有没有一种方法可以使用C代码获取与“ifconfig eth0”将返回的信息相同的信息?我对诸如IP地址,链接状态和MAC地址之类的东西感兴趣。

这是ifconfig的示例输出:

eth0      Link encap:Ethernet  HWaddr 00:0F:20:CF:8B:42
          inet addr:217.149.127.10  Bcast:217.149.127.63  Mask:255.255.255.192
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2472694671 errors:1 dropped:0 overruns:0 frame:0
          TX packets:44641779 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1761467179 (1679.8 Mb)  TX bytes:2870928587 (2737.9 Mb)
          Interrupt:28

最佳答案

是的,ifconfig本身是用C编写的。:)请参阅:http://cvsweb.netbsd.org/bsdweb.cgi/src/sbin/ifconfig/ifconfig.c?rev=1.169&content-type=text/x-cvsweb-markup

执行man netdevice以查看详细信息(在Linux上)。您使用ioctl()系统调用。

关于c - 使用C代码获取与ifconfig相同的信息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4951257/

10-10 15:37