先把它当成同一个号码的两种写法

你收到一张写得很满的快递单,另一张却把重复的内容省略了。只看长度,你可能以为它们不是同一个地址。IPv6 也容易给人这种感觉:上面是一长串带冒号的字符,下面的图里又出现八个小格,复制出来还比图上的短。

先别急着判断地址变了。打开本站首页,等查询结束,找到 IPv6 地址,再看下面的 IPv6 示意图。同一次成功查询里,地址行、八组示意图和图中的简写,是同一个地址的不同展示;复制按钮使用地址行所对应的简写。它们不是三次独立查询,也不是给你分配了三个地址。

本章只解决“怎么读、怎么还原、怎么对照复制结果”。两种协议的基础区别见第 2 章;如果这次没有查到 IPv6,先看未检测到的排查步骤,不要把下面的示例当成你自己的检测结果。

先说明示例

本章用 2001:db8::/32 范围内的文档专用地址讲解。图表均为模拟,不是访客地址,也不是可用来检验联网的目标。本站目前展示结果和示意图,并没有供你粘贴任意地址进行转换的输入框。

完整写法:八组,每组补齐四位

把长号码分格来读,会比一口气记住容易。普通的纯十六进制 IPv6 完整写法有八组,组与组之间用英文冒号 : 分开。每组补齐四个字符,八组一共是三十二个十六进制数字。这里的“完整”,指把可以省略的零都写出来,不是多出了一段地址。

十六进制是一种用十六个符号记数的方法:除了 0 到 9,还用 a 到 f。因此看到字母并不奇怪;g 则不属于这套数字。字母大小写不会改变地址的数值,本站当前会显示成小写。读的时候可以一组一组核对,不必把每组换算成日常十进制数字。

2001:0db8:0000:0000:0000:0000:00ab:0007

这就是本章反复使用的模拟地址。先数八个格子,而不是数屏幕上占了几行。本站首页的八组示意图把每组补齐四位,正好适合检查某个零到底落在哪一格。八格的作用是帮助看清写法,不能单凭其中一格就读出你的姓名、城市或网络速度。

模拟地址分成八组,先去掉组内前导零,再把中间四个全零组压缩成一个双冒号 模拟:同一个地址,按八组还原 2001 0db8 0000 0000 0000 0000 00ab 0007 先省每组开头的零 2001:db8:0:0:0:0:ab:7 四个连续全零组 → 一个 :: 2001:db8::ab:7
图 15-1 格子间的空白仅用于模拟排版;真实地址的组间分隔符是冒号。

先省前导零,不能随意删零

前导零就是一组数字最左边、排在有效数字前面的零。好比编号 0007 可以写成 7,但 7000 不能写成 7。IPv6 每组也一样:0db8 可以写成 db8,00ab 可以写成 ab,全零的一组 0000 先缩成 0。

不要把组内中间或末尾的零顺手删掉。0a07 去掉开头的零后是 a07,不是 a7;ab00 也不能缩成 ab。这些删法会改掉该组的数值,已经不是同一个地址。

第一步做完,模拟地址变成 2001:db8:0:0:0:0:ab:7。它仍有八组,只是每组没有补满四位。这是可读的地址写法,不需要为了“完整”而要求所有软件都保留那些零。

双冒号:省掉了多少组,数出来就知道

:: 叫作双冒号,可以代替连续的一组或多组全零组。它不是省略任意字符的万能符号,不能用来盖住 ab 这样的非零组。一个地址里至多出现一次双冒号,否则无法确定各处该补多少组。

  1. 把双冒号左边的组数数清楚。2001:db8::ab:7 左边有两组。
  2. 数右边的组数,这里也是两组。双冒号两侧一共已经写出四组。
  3. 用八减去四,得到四。双冒号在这里代替四个全零组,逐一补回 0000。
  4. 把其余组补到四位,得到前面那条完整写法,再按从左到右的顺序比较。

如果双冒号出现在开头或末尾,没有写内容的一侧就按零组计算。不要把 :: 本身当成两个普通分隔符,机械地数冒号往往会算错。判断的关键是已经写出来的有效组数,以及最终能否还原为八组。

本站的简写会再选择一种统一形式:连续全零组最长的那一段压成双冒号;若有两段同样长,选靠左的一段;只剩单独一组零时,不用双冒号去压缩它。“某种写法能表示这个地址”和“统一展示时选哪种写法”是两回事。其他软件出现不同但合法的表示,先还原比较,不要立即判为错误。

表 15-1 模拟写法怎样判断
写法判断理由
2001:DB8::AB:7与本章地址相同大小写不改数值,本站统一小写
2001:db8:0:0:0:0:ab:7与本章地址相同八组都已写出,只省前导零
2001:db8::ab:70是另一个地址最后一组是 0070,不是 0007
2001:db8::ab::7不是合法写法一个地址出现两次双冒号

本站复制的到底是哪一串

现在回到首页看同一轮结果。IPv6 地址行给出统一简写;八组图中各格显示四位,图内还有简写。当前工具会先整理查询得到的 IPv6,再同时用于地址行、示意图和复制目标。因此,把八格抄成一条长串,与点击“复制 IPv6”得到的短串不同,并不表示复制遗漏。

手机屏幕比较窄时,地址行可以在冒号后折到下一行,这是排版换行,不是给地址插入新的空格。按钮从工具保存的地址文本复制,不是把页面所有可见内容连起来复制,也不会把图里的空白、标题和提示一起带走。

  1. 等查询结束,确认 IPv6 地址有值,再点击它对应的复制按钮。
  2. 看到“已复制”后,把结果粘贴到你信任的纯文本位置,检查开头、结尾和双冒号位置。
  3. 若要与八格对照,按前面的补零方法还原;不要为了凑成八格而在复制结果后面添加字符。
  4. 若提示没能自动复制,选中或长按地址手动复制,粘贴后重新核对。失败提示不等于已写入新的剪贴板内容,里面可能仍是旧文本。

本次没检测到 IPv6 时,对应复制按钮会不可用;两类地址都查不到时也不会提供可复制的新地址。不要从旧截图或前一轮粘贴记录里找一串文字,冒充本次结果。若按了重新查询,先等这轮结束,再与这轮保存的文本比较。

对照结果:先检查写法,再检查是否同一轮

最省事的比较方法,是把两条普通纯十六进制 IPv6 都还原为八组四位,统一大小写,再逐组比较。八组全相同,说明地址数值相同;其中一组不同,就不只是省略方式不同。这个判断只比较地址,不会证明两次网络连接、设备或查询时间也相同。

表 15-2 看到不同文字,下一步做什么
情况先做什么
一条很长,一条很短还原双冒号、补齐前导零后比较
只有英文字母大小写不同统一成小写,再按组核对
同一页面的图与复制结果不同先确认是完整写法与简写的区别,再检查复制是否成功
重新查询后有一组真的不同分别保存两轮时间和结果,不先归因于显示压缩

比如你上午保存一条简写,晚上重新查询后发现尾部不同,不能只因为两条都带双冒号就说它们相同。也不要为排查读法而重启路由器:先把当前结果和复制文本对应起来。需要研究两轮地址是否变化,再参考重启前后的对照记录方法,把设备、网络和时间分开记清。

不属于这套八组练习的文字,先别乱删

本章的手工步骤针对普通的纯十六进制地址。如果你遇到尾部带点分十进制数字的 IPv6 混合写法,就不要照着“冒号分组后补四位”硬抄;那种尾部表示方式需要另外换算。当前首页的八格图会把接受到的这类地址转换为十六进制组展示,但它不是完整的地址校验或格式转换服务。

从别处复制来的内容还可能包含网址、方括号或附加信息。先问清接收方需要“单个地址”还是其他格式,不要把各种符号都当成零的缩写删掉。本章不要求你把查询结果填进路由器配置,也不建议为了验证地址而访问陌生目标。

最后留意信息范围:本站显示的是这次查询观察到的地址,写法还原只是读懂这串数字。它不能代替IPv6 测试的连通结果,也不能证明所有网站都能访问。如果要公开求助,先遮住无需公开的个人网络信息;学习读法时,继续使用本章的模拟地址即可。

小结

  • 完整写法按八组读,每组补齐四位;缩写先去组内前导零,不能任意删除中间或末尾的零。
  • 双冒号只出现一次。两侧已写组数合计后,用八减去它,就是要补回的全零组数。
  • 本站地址行和复制目标是同一轮结果的统一简写,八组图用于展开观察;长短不同不等于地址变化。
  • 复制成功后再粘贴核对,遇到提示失败或未检测到,不把旧文本当成新结果。

现在可以回首页,找出一组完整写法与简写的对应关系。先学会数格子和补零,再看真实结果,会比背住整串地址更可靠。