164

传统的 IPv4 点分四边形表示法用冒号将地址与端口隔开,如以下环回接口上的 Web 服务器示例:

127.0.0.1:80

但是使用 IPv6 表示法,地址本身可以包含冒号。例如,这是环回地址的缩写形式:

::1

端口(或其功能等效项)如何以 IPv6 地址/端口端点的文本表示形式表示?

4

6 回答 6

230

它们的工作方式与今天几乎相同。但是,请确保您包含[]在您的 IP 周围。

例如 :http://[1fff:0:a88:85a3::ac1f]:8001/index.html

维基百科有一篇关于 IPv6 的不错的文章:http ://en.wikipedia.org/wiki/IPv6#Addressing

于 2008-10-09T11:34:11.183 回答
41

IPv6 中使用的协议与 IPv4 中的协议相同。两个版本之间唯一改变的是寻址方案,DHCP [DHCPv6] 和 ICMP [ICMPv6]。所以基本上,任何与 TCP/UDP 相关的东西,包括端口范围 (0-65535) 都保持不变。

编辑:端口 0 是 TCP 中的保留端口,但它确实存在。见RFC793

于 2008-10-09T11:33:55.867 回答
8

Wikipedia指出,IPv6 地址的语法包括冒号,并且具有防止固定长度解析的简短形式,因此您必须用 [] 分隔地址部分。这完全避免了奇怪的解析错误。

(取自Peter Wone对原始问题所做的编辑。)

于 2014-08-29T14:36:28.100 回答
6

他们是一样的,不是吗?现在我对自己失去了信心,但我真的认为 IPv6 只是一种寻址方式的改变。TCP 和 UDP 仍然像在 IPv4 下一样被寻址。

于 2008-10-09T11:33:32.090 回答
6

我很确定端口只在 tcp 和 udp 中有一部分。所以即使你使用新的IP协议也是一样的

于 2008-10-09T11:33:59.220 回答
5

我会说最好的参考是URL 中的文字 IPv6 地址格式,其中定义了 [] 的使用。

另外,如果是用于编程和代码,特别是 Java,我建议阅读Class for Inet6Address java/net/URL 定义,其中详细介绍了 Inet6 内涵中 Inet4 地址的使用和其他情况。就我而言,IPv4 映射地址的形式为::ffff:wxyz,因为 IPv6 地址用于表示 IPv4 地址也解决了我的问题。它允许本地程序在与 IPv4 和 IPv6 节点通信时使用相同的地址数据结构和相同的套接字。亚马逊云 Linux 盒子默认设置就是这种情况。

于 2016-03-03T08:47:36.143 回答