有没有一种以编程方式使用c++在Windows上检查IPv6是否已安装/启用的方法?可以在接口级别或系统范围内进行。
在许多网络可用性方面,最简单的方法是尝试使用它,并在失败时捕获异常。
GetAdapterAddresses()
枚举系统接口,然后查找IPv6地址。请记住,在Windows XP系统上,需要先运行ipv6 install
命令,才能启用IPv6协议。因此,它比你想象的要稍微复杂一些。
const int sock6 = socket (AF_INET6, SOCK_DGRAM, 0);
const BOOL is_ip6_enabled = (SOCKET_ERROR != sock6);
close (sock6);