为什么这个带有过多前面点的 URL 会解析为 IP 地址?

Sha*_*han 31 url ip url-routing

http://.................1168951531

其中,当放入 chrome 时,预览到 URL http://69.172.200.235/,该URL重定向(通过外部服务器响应代码3XX)到www.test.com,但这超出了我试图弄清楚的范围。

像上面这样奇怪的 URL 如何解析为 IP 地址?这是格式规则吗?

小智 44

Chrome 将数字 1168951531 解释为十进制数,以十六进制表示时为 45ACC8EB。十六进制中的 45ACC8EB 与点分十进制 69.172.200.235 相同,当您将每对十六进制数字作为一个十进制数时。

45 -> 69
AC -> 172
C8 -> 200
EB -> 235
Run Code Online (Sandbox Code Playgroud)

简短回答:它是相同 IP 地址的纯十进制表示。

  • 解析主机名的典型源代码是首先检查它是否是 IP 地址(例如使用 `inet_addr()`),如果不是,则将其传递给查询 DNS 服务器(并读取`hosts` 文件)。如上面的答案所述,传递 IP 地址的十进制表示在大多数实现中是完全合法的。我可以在终端中输入“ping 1168951531”,它实际上会 ping 目标地址。前面的所有点变得更奇怪,但可能 Chrome 在尝试解决之前将它们删除。 (11认同)
  • Firefox 也进行了解释(没有点),但不是 Edge。 (4认同)