gpt4 book ai didi

c++ - C++ 中的 IPv6 连接测试

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:58:46 25 4
gpt4 key购买 nike

是否有任何 C++ 函数可以测试运行我的程序的计算机是否支持 IPv6 连接?

我需要知道类似此页面结果的信息 http://test-ipv6.com/ , 但在 C++ 中。

编辑:我正在尝试使用 getifaddrs()。但是返回值可以是 AF_INET6 found,因为我确实设置了 IPv6 地址,但是 IPv6 连接不起作用(可能是因为 ISP)。那么有什么方法可以检查 IPv6 连接是否确实有效?

最佳答案

所有现代操作系统都支持 IPv6,因此您不必担心该协议(protocol)是否可用。 (否则,您的程序将无法编译。)

但确定计算机是否实际具有有效 IPv6 连接的唯一方法是尝试 IPv6 连接。

这实际上是what Microsoft does with their network status indicator in Windows .他们试图加载 URL from an IPv6-only web server和一个 URL from an IPv4-only web server .如果这两个都失败了,您会在系统托盘中的网络图标上方看到带有感叹号的黄色三角形。

因为我需要类似的功能,但我还需要实际的 IPv6 地址,I created my own public service其中包括此功能(以及其他一些功能)。所以我有一个 IPv6-only URL它返回公共(public) IPv6 地址和一个 IPv4-only URL它返回公共(public) IPv4 地址。

因为其中一个网址只能通过 IPv6 访问,而另一个只能通过 IPv4 访问,您可以独立验证每个协议(protocol)的连接性。

无论哪种方式,如果您尝试获取 URL 失败,您可以检查返回的错误以确定可能是什么问题。

关于c++ - C++ 中的 IPv6 连接测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13441324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com