我需要将 Mac 地址转换为IPv6 Link
本地地址。这link-local IPv6
是从NIC’s
mac地址推断出来的。转换过程如下所示。
取mac地址:例如
52:74:f2:b1:a8:7f
将 ff:fe 扔到中间:
52:74:f2:ff:fe:b1:a8:7f
重新格式化为 IPv6 表示法
5274:f2ff:feb1:a87f
将第一个八位字节从十六进制转换为二进制:
52 -> 01010010
反转索引 6 处的位(从 0 开始计数):
01010010 -> 01010000
将八位字节转换回十六进制:
01010000 -> 50
用新计算的一个替换第一个八位字节:
5074:f2ff:feb1:a87f
添加链接本地前缀:
fe80::5074:f2ff:feb1:a87f
这似乎是许多特定的字符串操作和数字系统之间的转换。我一直在寻找 Java 中的实用程序类,它可以帮助我以更有效的方式做同样的事情。我看到Java有方法InetAddress
来确定有问题的地址是否是本地链接。