【问题标题】:How does 1.1.1.1 resolve to a website when .1 is not a TLD当 .1 不是 TLD 时,1.1.1.1 如何解析为网站
【发布时间】:2021-05-27 14:37:58
【问题描述】:
当在浏览器的地址栏中输入1.1.1.1 时,它会打开https://1.1.1.1/,这是我第一次看到.1 顶级域,所以我在各种域注册商上查找了它。我找不到它,所以我检查了 iana.org 和 wikipedia.org 上是否真的是 TLD。它似乎不是顶级域,所以我回去检查了颁发给https://cloudflare-dns.com/ 的 TLS 证书
所以我认为这可能是一个聪明的 JavaScript hack,它在页面加载后更改 URL,但后来我检查了网络请求,它们似乎也有 1.1.1.1 作为域名(如下所示)
Request URL: https://1.1.1.1/
Request Method: GET
Status Code: 200
Remote Address: 1.1.1.1:443
cloudflare 如何做到这一点?
【问题讨论】:
标签:
networking
dns
ip-address
cloudflare
tld
【解决方案1】:
我看到了 .1 顶级域
不是。
1.1.1.1 是一个 IPv4 地址,仅此而已。不多也不少。并且上面的网站有一个带有IP地址的证书,这是可能的,但很少见。
当您使用带有主机名的任何 URL 时,该主机名将转换为 IP 地址,并且浏览器会连接到它。但是,您可以将 IP 地址直接放在 URL 中,在这种情况下浏览器直接连接到它,它会跳过名称到 IP 地址的 DNS 解析。
当前的 ICANN 规则禁止使用数字 TLD,以消除它们与 IP 地址的歧义。
在 Number in the top-level domain? 上查看我关于 TLD 和其中数字的最长解释。
cloudflare 如何做到这一点?
任何人都可以做与他们完全相同的事情,但显然用处不大。只要确保创建正确的证书,一些 CA 允许在 IP 地址上提供证书,但不是全部,这不是标准情况。还应相应地配置网络服务器,以接受 URL 中的 IP 地址,它希望主机名能够为正确的网站提供服务,特别是如果主机上有多个(在这种情况下,对于 HTTPS,您需要单独的 IP 地址,每个网站一个)。