如何将 IPv6 转换为 MAC 地址
只有当 IPv6 的接口标识符是通过 EUI-64 方法从某个 MAC 地址派生而来时,
才能把这个 IPv6 地址反向还原为 MAC 地址。这最常见于以 fe80::
开头的较旧链路本地地址,以及部分无状态自动配置地址。
何时可用
当 IPv6 地址的最后 64 位仍然保留 EUI-64 接口标识符时,才能进行这种 反向转换。
- 接口标识符由 48 位 MAC 地址构造而成。
- 中间字节仍然是
ff:fe。 - 该地址不是通过隐私扩展或其他随机化方案生成的。
转换原理
转换器会按以下步骤重建 MAC 地址:
- 读取 IPv6 地址的最后 64 位。
- 删除接口标识符中间插入的
ff:fe字节。 - 翻转首字节中的通用/本地位。
- 将剩余的 48 位格式化为标准 MAC 地址。
为什么没有结果
以下情况通常不会得到结果:
- IPv6 地址本身不是合法格式。
- 地址虽然合法,但并不是通过 EUI-64 从 MAC 地址生成的。
- 地址使用了隐私地址、稳定随机地址、DHCPv6 或其他不基于 MAC 的分配 方式。