当前位置: 技术问答>linux和unix
如果获取本机ipv6的地址
来源: 互联网 发布时间:2015-12-18
本文导语: 由于代码需要在本机取IP地址,既要支持ipv4,又要支持ipv6。通过SIOCGIFADDR ioctl调用取ipv4地址是没问题的,但无法取到ipv6的地址。已经琢磨了N久,仍然找不到方法。在网上查了一下,也有位兄弟干过同样的事,得出...
由于代码需要在本机取IP地址,既要支持ipv4,又要支持ipv6。通过SIOCGIFADDR ioctl调用取ipv4地址是没问题的,但无法取到ipv6的地址。已经琢磨了N久,仍然找不到方法。在网上查了一下,也有位兄弟干过同样的事,得出的结论是只有IPv4的SIOCGIFADDR调用,没有ipv6的,只有通过读取/proc/net/if_inet6相应的域来得到。但感觉这样似乎太麻烦了点,不知还有没有其他什么办法,还请高人指点!不胜感激!
|
#include
#include
#include
int getaddrinfo(const char *node, const char *service,
const struct addrinfo *hints,
struct addrinfo **res);
#include
#include
int getaddrinfo(const char *node, const char *service,
const struct addrinfo *hints,
struct addrinfo **res);