惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
aimingoo的专栏
aimingoo的专栏
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 聂微东
Engineering at Meta
Engineering at Meta
N
Netflix TechBlog - Medium
Blog — PlanetScale
Blog — PlanetScale
大猫的无限游戏
大猫的无限游戏
Vercel News
Vercel News
D
DataBreaches.Net
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
L
LangChain Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
F
Fortinet All Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
J
Java Code Geeks
Recent Announcements
Recent Announcements
Jina AI
Jina AI
G
Google Developers Blog
腾讯CDC
博客园_首页
博客园 - 【当耐特】

Dallas Lu

一些没有意义的事情 博客程序的一次大重构 OpenWRT 使用 udp2raw 对抗 WireGuard 阻断 OpenWRT 使用 udp2raw 对抗 WireGuard 阻断 博客程序架构的思考与展望 如何证明你是原创作者 如何证明你是原创作者 Nginx 泛域名配置的隐患与对策 Nginx 泛域名配置的隐患与对策 WISeID S/MIME 证书 WISeID S/MIME 证书 V2EX 刑满释放记 V2EX 刑满释放记 使用 Radicale 在 Ubuntu 24.04 中搭建 vCards CardDav 服务 使用 Radicale 在 Ubuntu 24.04 中搭建 vCards CardDav 服务 邮件服务的域名成功从 SURBL 黑名单移除 邮件服务的域名成功从 SURBL 黑名单移除 网站多语言的设计细节 网站多语言的设计细节 网站评论系统的目前进展和展望 网站评论系统的目前进展和展望 在公网使用 iptables 转发端口时保留客户端 IP 在公网使用 iptables 转发端口时保留客户端 IP 邮件投递平台 Postal 的使用经验 邮件投递平台 Postal 的使用经验 自建 Postal 完美替代 SendGrid 自建 Postal 完美替代 SendGrid 互联网在崩塌吗,然后呢 互联网在崩塌吗,然后呢 在 SvelteKit 应用中使用 JSON-LD
“茴字的四种写法”之 IP 与域名
达拉斯・卢 · 2024-04-14 · via Dallas Lu

X 友 plantegg 在测试 MySQL 的连接问题时,使用了 IP 127.1,因此引起了一些网友的兴趣。我在第一次知道这些时,也曾怀疑自己学了假的计算机网络课程。所以整理了一些像是“茴字的四种写法”一类的冷知识。各位读者,请记着!这些知识应该记着。将来做网管的时候,写规则要用。(恳切脸)

IPv4

在学习 IPv6 时,大家都知道,连续的 0 可以省略,写成连续的两个冒号 ::。在 IPv4 中同样可以简写。

IPv4 的简写

正如 plantegg 提到1的, 127.1127.0.0.1。就是直接省略了中间的 0 值点分位。

常见的 IP 格式 127.0.0.1 这种是使用了点分位方式,即用点 . 分隔开的四个字节。如果不用点分位,直接写成 16 进制 0x7f000001 也是可以的,10 进制 2130706433 也行,8进制 017700000001,这些都等同于 127.0.0.1

点分位也不要求一定分成4个,可以只将第一个字节分开,比如 1.65793 等同于 1.1.1.1。每个分位也不要求统一进制,比如其对应的 8 进制是 1.0200401。同理,127.0.0.1 也能写成 0x7f.01

看到这里,应该不难理解 IPv4 只能省略 0 值分位了吧,127.1.1.1 能写成 127.65793,同理,127.0.0.1 就能简写成 127.1

IPv4 的本质是 32 位的整数,在真正在网络层面使用这些写法的 IP 时,会自动转换成整数值,一般打印输出时,会按标准的 4 个占分位进行格式化。

最短的 IPv4 地址

Cloudflare 有一个 DNS/Warp 服务 IP 1.1.1.1 非常酷2。实际上,它的备用 IP 1.0.0.1 则更酷,因为按上面的规则,可以简单写成 1.1,这是最酷的 A 类 IPv4 地址,因为它是可用范围中的第一个。

在非等宽字体中,1 一般要窄于其他字符,所以 1.1 可能是打印出来宽度最短的公网 IPv4 地址。

域名

在大众眼中的通俗概念中,对一些术语和规则有着与专业领域不同的认知。

结尾省略的点

比如二级域名和顶级域名的定义。通俗定义的顶级域名,是指 dallas.lu 这种需要注册的域名,二级域名是指其子域名比如 cdn.dallas.lu。但 .lu 才算是顶级域名。顶级域名之上,还有根域名,即 .。所以,dallas.lu. 才算一个完整的域名。但在日常使用中,其顶级域名后缀 .lu 即足够使其与主机名/本地域区分开来,所以结尾的 . 是可省略的。

如果你拥有过域名,并设置过 CNAME 解析或 NS,可能遇到过必须在结尾加个 . 的情况。但如今,如 Cloudflare 等服务商都允许不写绝对完整的域名了。逐渐很多人就忘记了这件事,所以在域名结尾加个 .,会有意外的效果。比如,阿里云是禁止使用未备案的域名提供 Web 访问的,但其没有考虑结尾含 . 的情况,所以在结尾加上 . 就能正常访问。这个方式我用了很多年,直到大概最近三年内才失效。

有趣的是,各家网站对于域名结尾的 . 的处理方式也不一样。比如,http://tesla.com.http://google.com. 是跳转到无 . 结尾的域名;而 http://microsoft.com. 是 404 页面;http://x.com.http://amazon.com. 是空白页面;http://baidu.com. 是连接被重置;http://openai.com. 则可正常访问。

最短的 URL

对于顶级域名来说,是不能直接访问的,因为它只由2个以上的字母组成,与主机名/本地域的格式相同而造成冲突。但如果在后面加一个 .,就能够作为域名来解析了。

所以,最短的网址之一是 http://to.,目前其跳转到 www.to.。其二是 http://ai.,目前正常访问。

相似的域名

IDN 域名中可以使用更多的字符。其中很多跟英文字母非常像,如果浏览器不对其转码显示,用户凭肉眼是分辨不出来的。比如,访问一下 https://раураӏ.com/,你会发现它并不是真正的 PayPal,其中的 а 并不是普通的小写字母 a。关于域名中的李逵和李鬼,超出了本文范畴,不再详细讨论。

结语

学会了吗?(叹气+惋惜脸)


  1. plantegg. https://x.com/plantegg/status/1773162126254952769. X. 2024-03-27. ↩

  2. Ólafur Guðmundsson. Introducing DNS Resolver, 1.1.1.1 (not a joke). The Cloudflare Blog. 2018-04-01. ↩