代码之家  ›  专栏  ›  技术社区  ›  user1529957

qt双栈ipv4和ipv6应用程序

  •  1
  • user1529957  · 技术社区  · 11 年前

    我有一个用Qt(v4)编写的ipv4客户端/服务器网络应用程序,我必须将其移植到ipv6中(实际上客户端移植是最重要的一个),以这种方式创建一个双栈ipv4&ipv6应用程序。

    我没有任何可用的ipv6网络来执行任何测试。

    我尝试了以下操作,但没有成功:

    • 找到一个进行ipv6验证的工具:工具不多,通常文档记录不足,通常用于C语言
    • 创建本地ipv6网络环境

    有什么想法吗?

    1 回复  |  直到 11 年前
        1
  •  3
  •   Sander Steffann    11 年前

    一定要创建一个本地IPv6网络环境。IPv6中的很多功能与IPv4中的功能相同,但许多其他功能不同。在开发使用IPv6的应用程序时,您应该有一些实践经验。你不会期望一个从未使用过IP的人开发使用IPv4的应用程序,是吗?

    一些关键差异:

    • IPv6地址以十六进制书写
    • IPv6主机可能有多个地址
      • 以开头的IPv6地址 fe80:
        这是链接的本地地址。每个IPv6主机的每个接口都有一个。链路本地地址存在于每个链路(以太网段、LAN)上,并且它们在每个LAN上使用相同的地址范围。因此,不可能对它们进行路由,但当仅在局域网内进行通信时,它们非常有用。
      • 一个或多个IPv6地址,该地址以范围内的内容开头 2000: - 3fff:
        这些地址是用于正常互联网通信的全局可路由地址。
      • 零个或多个IPv6地址以范围内的内容开头 fc00: - fdff:
        这些是唯一本地地址(ULA)。它们在房子、大楼、组织等内部路由。它们不路由到全球互联网,所以你无法与它们联系公共服务。
      • 当然,可能还有一个或多个IPv4地址
    • NAT(几乎)从未与IPv6一起使用过。ULA地址为 NAT到公共地址。

    获得体验的最佳方式是使用连接到真实IPv6互联网的IPv6连接。如果你的ISP不能为你提供IPv6(现在他们应该这样做,但许多ISP仍在松懈),你可以使用隧道代理服务,比如 SixXS Hurricane Electric 。他们将为您提供一个IPv6-over-IPv4隧道,其中包含/48个地址。这对于2 ^64个主机的65536个子网来说已经足够了。对于开发网络来说绰绰有余:-)SixXS的优势在于,它们提供了可以在NAT路由器后面运行的客户端软件。Hurricane Electric的好处是注册程序要容易得多。