跳到主要内容
AZ Tools

IPv6 展开 / 压缩

每个 IPv6 地址都是 128 位,写成 8 组、每组 4 位十六进制数 —— 但你几乎见不到完整形式,因为有两条简写规则:组内前导零可以省略,且一段连续的全零组可以用一个 "::" 代替。RFC 5952 规定了唯一的规范文本形式(小写十六进制、无前导零、"::" 压缩最长的零段 —— 并列时取最左边的 —— 且不得用于单个零组),本工具的压缩输出严格遵循这一规范。 粘贴任何有效写法 —— 完全展开、混合或最大压缩 —— 解析器会实时将其规范化为五种表示:防火墙、ACL 和按文本比较地址的脚本所需的 8 组完全展开形式;RFC 5952 压缩形式;无冒号的 32 位十六进制字符串;PTR(反向 DNS)记录使用的半字节倒序 ip6.arpa 名称;以及按 16 位分组的原始二进制 —— 用肉眼推算子网边界时很方便。所有解析都在浏览器内完成,地址只保存在设备的本地存储中,下次访问仍然在。

  • 展开2001:0db8:0000:0000:0000:8a2e:0370:7334
  • 压缩2001:db8::8a2e:370:7334
  • Hex20010db80000000000008a2e03707334
  • 反向 DNS4.3.3.7.0.7.3.0.e.2.a.8.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa
  • 二进制0010000000000001:0000110110111000:0000000000000000:0000000000000000:0000000000000000:1000101000101110:0000001101110000:0111001100110100

压缩遵循 RFC 5952 — 最长的零段连续会变成 :: 。

使用方法

  1. 以任意写法粘贴或输入 IPv6 地址 —— 用 :: 压缩的、完全展开的,或介于两者之间的都可以。
  2. 输入时五种表示会实时更新;无效地址会显示错误提示。
  3. 用每行旁边的复制按钮复制所需的形式。
  4. 粘贴前请去掉前缀长度(/64)和区域 ID(%eth0)—— 只解析纯地址。

常见问题

:: 在 IPv6 地址中是什么意思?
它代表一组或多组连续的零。每个地址最多只能出现一次 —— 出现两次时,解析器无法确定每个 :: 各隐藏了多少组。RFC 5952 还要求它必须替换最长的零段,长度相同时取最左边的一段。
为什么单个零组不会被压缩成 ::?
RFC 5952 第 4.2.2 节禁止这样做:2001:db8:0:1:1:1:1:1 必须保留那个单独的 0,不能写成 2001:db8::1:1:1:1:1,因为只压缩一组的 :: 毫无节省,还会导致不同工具输出不一致。本工具遵循该规则 —— 至少要有连续两个零组才会压缩。
为什么反向 PTR 这么长?
ip6.arpa 每个 DNS 标签只编码一个十六进制半字节(4 位),并且完全倒序。因此 128 位地址总是恰好变成 32 个标签加 ip6.arpa —— 反向 DNS 侧不存在压缩写法。
可以粘贴 ::ffff:192.0.2.1 这样的 IPv4 映射地址吗?
点分形式不行 —— 解析器只接受十六进制组。请先把 IPv4 部分转换成两个十六进制组(192.0.2.1 → c000:201,即 ::ffff:c000:201)。区域 ID(%eth0)和前缀长度(/64)也必须去掉。
我的地址会被发送到别处吗?
不会。解析和转换全部在浏览器内进行。输入只是为了方便而记在浏览器本地存储里,清除站点数据即可删除。

相关工具