引用 IP 地址和端口号时简写“[::]:25”的起源和含义是什么

引用 IP 地址和端口号时简写“[::]:25”的起源和含义是什么

有时,当使用监听特定端口的某些库或应用程序时,我会收到如下日志条目:

[2023-07-17 19:04:36] INFO  SMTP Server listening on [::]:25

上述日志是由SMTP 服务器NodeJS 的包。

我认识到这[::]可能指的localhost:25应用程序正在监听的端口。但是,这种简写从何而来?它背后有特定的含义吗?还是只是被创建并保留下来的东西?

答案1

::是个建议代表全零 IPv6 地址0:0:0:0:0:0:0:0。连续的零可以缩短为冒号,并且如果其全部零,那么剩下的就是零。括号用于消除端口号(也是用冒号分隔的)的歧义。

就像 v4 地址 0(或0.0.0.0)一样,绑定到全零地址是一种常见的约定,用于指定服务应在全部可用地址。这是不是与 localhost 相同,通常表示仅对该机器的本地连接可用的服务。

在 v4 中,全零地址也称为“此主机”(最初保留该术语),在 v6 中,它被引入为“未指定的地址”。请注意,现代操作系统通过通用套接字接口方便接受两种协议版本的连接,因此后者将监听 IPv6 连接通常不正确。

答案2

这是 IPv4 的 IPv6 表示0.0.0.0

您的 SMTP 服务器只是表明它正在监听端口 25 上的 IPv6 连接。

相关内容