以编程方式检查是否在Windows上启用了IPv6

时间:2010-06-24 13:12:13

标签: c++ windows ipv6

有没有办法以编程方式检查是否在使用c ++的Windows上安装/启用了IPv6?无论是在接口级别还是在系统范围内。

5 个答案:

答案 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);