有没有办法以编程方式检查是否在使用c ++的Windows上安装/启用了IPv6?无论是在接口级别还是在系统范围内。
答案 0 :(得分:4)
有了很多网络可用性,最简单的方法是尝试使用它并在失败时捕获异常。
答案 1 :(得分:2)
WSCEnumProtocols()
可用于检查IPv6是否作为协议安装。
答案 2 :(得分:1)
一个答案是使用GetAdapterAddresses()
枚举系统接口并查找IPv6地址。
答案 3 :(得分:0)
请记住,在XP上,有必要在IPv6可用之前运行ipv6 install
,因此它比您想象的要复杂一点。
答案 4 :(得分:-1)
最简单的就是尝试打开套接字,
const int sock6 = socket (AF_INET6, SOCK_DGRAM, 0);
const BOOL is_ip6_enabled = (SOCKET_ERROR != sock6);
close (sock6);