有没有办法以编程方式检查是否在Windows上使用c + +安装/启用IPv6? 无论是在界面级还是系统级。
WSCEnumProtocols()
可用于检查IPv6是否作为协议安装。
有很多网络可用性的东西最简单的方法是尝试使用它,并捕捉异常,如果它失败。
一个答案是使用GetAdapterAddresses()
枚举系统接口并查找IPv6地址。
请记住,在XP上有必要运行ipv6 install
才能使用IPv6,所以比你想象的要复杂一点。
最简单的就是试试打开一个socket,
const int sock6 = socket (AF_INET6, SOCK_DGRAM, 0); const BOOL is_ip6_enabled = (SOCKET_ERROR != sock6); close (sock6);