检查我的互联网提供商是否支持并在我的操作系统中以编程方式启用IPv6/Teredo



我开发的应用程序(c++ Qt5.7)的ipv6连接通过互联网。但是在IPv6通道可访问性验证中存在一些问题。我想:

  1. 检查我的互联网提供商是否支持IPv6和协议Teredo, ISATAP &;另外。
  2. 检查在我的操作系统(Windows)中启用/禁用IPv6和Teredo
  3. 如果IPv6是禁用的,然后设置它的编程。

我试着这样做:

RegCreateKeyEx(HKEY_LOCAL_MACHINE, TEXT("SYSTEM\CurrentControlSet\services\TCPIP6\Parameters"), 0, NULL, 1, KEY_WRITE, NULL, &hkey, &dwDisposition);

但是什么都没有发生…所以我不知道- IPv6是否可能在我的机器上启用。

检查网络连接可用性的最佳方法是直接尝试。如果您尝试先进行检查,那么应用程序运行的平台可能以您没有预料到的方式进行了配置,并且在一切正常运行时检查将失败。相反的情况更常见:您检查了主机上的所有内容,看起来正常,但随后在网络中出现问题,您的代码假设它应该工作,即使它不工作。所以不要检查:只是做和处理潜在的错误,并从他们恢复。

关于Teredo, ISATAP等:不要

Teredo, ISATAP, 6to4等都是你不应该再使用的协议。他们是不可靠和不可预测的。如果你的用户关闭了它们,那么很可能有一个很好的理由。不要干扰用户的操作系统设置!

最新更新