⌘K 切换工具
NETWORK

IPv6地址压缩工具

IPv6地址的压缩和展开。

local
ipv6-compress
Compressed
2001:db8::ff00:42:8329
Expanded (full)
2001:0db8:0000:0000:0000:ff00:0042:8329
§01 关于此工具

概述

同一个 IPv6 地址可以有很多种写法:2001:0db8:0000:0000:0000:ff00:0042:83292001:db8::ff00:42:8329 是同一个地址。两种写法在协议层面完全等价,但在配置文件里和字符串比较里就不是一回事了。这个工具接受任意合法的文本形式,同时给出规范的压缩形式和完全展开的八组形式——用来把配置、ACL 和日志里的地址统一成一种写法,或者比较两个只在记法上不同的地址,都很合适。

使用方法

  1. IPv6 address 里输入或粘贴一个地址。完整写法和带 :: 的缩写形式都接受。
  2. 从结果表格里读 Compressed(最短形式:去掉前导零,最长的全零段折叠成 ::)和 Expanded (full)(八组各 4 位十六进制)。两者都随输入更新。

示例

  • 2001:0db8:0000:0000:0000:ff00:0042:8329 → 压缩为 2001:db8::ff00:42:8329
  • ::1 → 展开为 0000:0000:0000:0000:0000:0000:0000:0001
  • fe80::1%eth0 → 在这里属于非法输入;请先去掉区域后缀

说明

输入必须是纯粹的十六进制组:区域标识符(%eth0)和内嵌 IPv4 的写法(::ffff:192.0.2.1)都不解析,会显示 “Invalid IPv6 address” 错误。按标准,:: 只允许出现一次。要判断两个地址是否相同,先各自展开再比对,比直接比较文本可靠得多。

FAQ
地址是在本地处理的吗?
是的。解析、展开和压缩都在浏览器里用字符串操作完成。任何地址都不会离开你的机器。
压缩形式遵循什么规则?
每一组的前导零会被去掉,连续全零组中最长的那一段被替换成 ::。一段至少要有两组才会被折叠,这与 RFC 5952 关于规范文本表示的建议一致。
我到底为什么需要展开形式?
有些配置文件、PTR 记录的生成过程,以及朴素的字符串比较,都要求带前导零的完整八组写法。另外,要判断两个写法不同的 IPv6 地址是不是同一个,先把两者都展开是最稳妥的办法。