*.localhost 解析为 127.0.0.1 是否标准化?

*.localhost 解析为 127.0.0.1 是否标准化?

我注意到 pingwhatever.localhost解析为127.0.0.1。我在 macos 上。

这是我可以依赖的标准行为 (解析*.localhost127.0.0.1) 吗?它在 Linux 或 Windows 上的工作方式相同吗?

答案1

在大多数系统上都应该如此。RFC 本身表示名称解析应该返回 .localhost 内任何内容的环回地址。

域名“localhost.”以及任何属于以下范围的名称“.localhost”。 具有以下特殊性:

(略过一点)

名称解析 API 和库应该将本地主机名识别为特殊名称,并且应始终返回 IP 环回地址以进行地址查询

SHOULD 与 MUST 并不完全相同,但我希望几乎所有系统都遵循该行为。我想不出我使用过的任何 Linux 或 Windows 系统不遵循该行为。

答案2

字面答案是否定的。它被标准化(如另一个答案中所述)为环回地址,可以是 127.0.0.1、::1 或两者。此外,这是应该的,所以有些人可能没有这样设置。此外,用户可以在许多系统上将 localhost 覆盖为其他任何地址。

至少在 Windows 上,最近 localhost 会重新转换为 ::1 和 127.0.0.1,但 ::1 优先。有时,当用户启动仅侦听 IPv4 的服务时,这实际上会导致问题,而其他工具无法通过 localhost 访问该服务,因为该名称会产生 ::1。

相关内容