的接口,我如何才能获得网络接口重新连接到我的机器上的每个IP? IP包括:静态IP,动态IPC++ linux - 在C++ linux应用程序中获取IP
注:我不能使用系统调用,则getnameinfo
10X
的接口,我如何才能获得网络接口重新连接到我的机器上的每个IP? IP包括:静态IP,动态IPC++ linux - 在C++ linux应用程序中获取IP
注:我不能使用系统调用,则getnameinfo
10X
可以使用getifaddrs通话;但是,请注意,这只能检索每个接口一个地址。如果这还不够,请通过netlink套接字使用rtnetlink协议; libnetlink可能会使这更容易。
`getifaddrs()`使用netlink实现(在Linux上)。它是正确的接口(它可以为每个接口返回多个地址 - 它们只出现在多个`struct ifaddrs`中)。 – caf 2011-01-24 12:59:27
这样做相当棘手,我相信你需要有root权限。您需要发出一个ioctl
(类似SIOCGIFCONF
),然后将返回所有接口的列表,然后你就可以发出进一步ioctl
呼叫提取状态信息等
根本不需要,SIOCGIFCONF也不是及时的界面。避免。 – user562374 2011-01-24 11:50:57
习题这个问题可以帮助你:HTTP:// stackoverflow.com/questions/212528/linux-c-get-the-ip-address-of-local-computer – 2011-01-24 11:45:38