我正在尝试从struct ifaddrs获取网络接口信息
如何确定我正在查看的接口是inet (ipv4)还是inet6 (ipv6)?
发布于 2012-02-27 11:24:28
测试ifa_addr->sa_family - IPv4地址为AF_INET,IPv6地址为AF_INET6。
然后,您可以根据需要将ifa_addr成员强制转换为struct sockaddr_in *或struct sockaddr_in6 *。
发布于 2012-02-27 11:04:35
在FreeBSD中,假设您已经获得了对两者的内核支持,那么IPv4和IPv6之间的问题只是一个配置问题。
FreeBSD中的“通用”内核包含"INET6“选项,它为您提供IPV6。如果您还没有重新构建内核并排除该选项,那么只需配置一个IPv6地址,就可以在任何接口上使用IPv6。
发布于 2012-02-27 11:09:40
您可以尝试在接口上打开一个IPV6套接字,看看它是否支持IPV6。
https://stackoverflow.com/questions/9459469
复制相似问题