【发布时间】:2011-11-12 01:51:31
【问题描述】:
这里的答案中建议Get the IP address of the machine,可以使用getifaddrs() 获取运行程序的机器的IP 地址,效果很好:D:D
但是,在两个不同的系统上运行相同的程序,显示一个
SERVER_ADDRESS lo 127.0.0.1
SERVER_ADDRESS eth0 129.xxx.xxx.xxx
SERVER_ADDRESS virbr0 192.zzz.zzz.1
当另一个显示时
SERVER_ADDRESS lo0 127.0.0.1
SERVER_ADDRESS en0 192.yyy.yyy.yyy
我打算使用strcmp 来区分以太网,但现在我意识到它不能跨系统工作,因为可能会打印出不同的字符串。
是否有检查ifa_name 是否为以太网的功能(或更好的方法)?
【问题讨论】:
-
短的 ping 时间意味着 localhost ;)
-
ifconfig表明 localhost 接口具有LOOPBACK属性。也许可以以某种方式在 C 中提取这些信息。
标签: c linux networking