首页/网络/IP 与子网速查/IPv6 缩写/展开练习:8 组对错判断
IPv6 与下一代网络42 条

IPv6 缩写/展开练习:8 组对错判断

对照表练手:全零串位置、单个零组、大小写、冒号个数是常见考点;把 :: 按“补足 8 组”还原后自查最稳妥,注意 :: 至少代表 1 组、最多 7 组零。

IP 与子网速查网络更新于 2026-10-13

缩写规则

IPv6 地址 128 位分成 8 个 16 位组,规范写法允许两类缩写:每组内部的前导零可以省略,连续的全零组可以用双冒号替代。RFC 5952 进一步规定:双冒号只能出现一次,必须压缩最长的一段零组,长度相同时压缩靠前的那段,而单独一个零组不缩写。掌握这几条,多数考试题目可以直接判定。

基本信息

地址长度128 位,写成 8 组十六进制,每组 4 位
规则一每组前导零可省略,0000 写作 0
规则二连续全零组可用 :: 替代,且只能用一次
规则三:: 至少要代表一组零,不能表示零组
规则四必须压缩最长的一段零组,长度相同压缩靠前者
规则五字母统一小写,组内不做零的补齐

缩写对照表

原始写法规范缩写说明
2001:0db8:0000:0000:0000:ff00:0042:83292001:db8::ff00:42:8329中间四组零最长,用 :: 压缩
2001:0db8:0000:0001:0001:0001:0001:00012001:db8:0:1:1:1:1:1只有一个零组,按规范写作 0
ff02:0000:0000:0000:0000:0000:0000:0001ff02::1前导零全部省略后压缩零串
2001:0000:0000:0001:0000:0000:0001:00012001::1:0:0:1:1两段零长度相同,压缩靠前那段
0000:0000:0000:0000:0000:0000:0000:0001::1全零地址与回环地址的极端情况

程序校验与还原

程序校验与还原
python - <<'PY'
import ipaddress as ipa
for c in ['2001:0db8:0000:0000:0000:ff00:0042:8329', '2001:0:0:1:0:0:1:1', 'FF02::1']:
    print(ipa.IPv6Address(c).compressed)   # 输出规范缩写形式
# 还原成完整 8 组:exploded 属性不缩写任何零组
print(ipa.IPv6Address('2001:db8::1').exploded)
PY

常见判断题思路

  • 问“2001:db8::1::2 是否合法”:双冒号出现两次,直接判非法,:: 只能使用一次
  • 问“2001:db8:0:0:1:0:0:1 的最短写法”:两组零长度相同都是 2 组,按规范压缩靠前那组,得到 2001:db8::1:0:0:1
  • 问“:: 能否代表一组零”:规范不推荐也不允许用于仅省略一个零组的场景,应写作 0
  • 问“地址里有几个组”:把 :: 按补足 8 组来还原,数一数缺了几组即可
  • 问“大写是否等价”:大小写不敏感,但书写规范要求统一小写
记不住靠前还是靠后压缩时,用 Python 的 compressed 属性验证最快:规范只允许一种最短写法,机器给出的结果就是标准答案。

易错点

  • 一个地址里用了两次双冒号:设备与库都会直接判非法,这是最常见的失分点
  • 把 :: 用在只有一个零组的位置:写法不规范,某些严格解析器会给出非预期的还原结果
  • 两段等长零组时压缩了靠后那段:地址仍能解析成同一值,但不符合规范书写顺序,跨机构文档易被指出错误
  • 人工展开时补错组数:展开后必须恰好 8 组、每组 4 位十六进制,缺一组或多一组都会算出完全不同的地址

数据来源与参考

  • RFC 5952(IPv6 文本表示推荐)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌