从我在线阅读的内容来看,通过获取网络接口的 MAC 地址,在其中插入一个 FF:FE 字,或者在一些额外的位中进行 OR'ing 来生成 IPv6 链接本地地址,等等:例如 MAC 地址 00: 3E:E1:c6:20:c2 对应于 IPv6 链路本地地址 fe80::23e:e1ff:fec6:20c2%en0,知道 MAC 地址的程序可以计算 IPv6 地址,反之亦然。
这似乎在我的 Macintosh 上运行良好,但在我同事的 Windows 机器上,我们看到了这个(来自 ipconfig 的输出):
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::eb:b41:3e4c:fd9e%11
IPv4 Address. . . . . . . . . . . : 192.168.0.3
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
在这里,网络接口的 MAC 地址(即 0b:41:3e:4c:fd:9e )看起来只有字节“eb”OR'd 到它的前面,而不是插入 ff:fe 到正如我所期望的那样。
谁能解释这是为什么?即,Windows 是否在做一些与此处的 IPv6 链接本地地址规范相反的事情,或者它只是使用了一些我不知道的其他可接受的 MAC-> IPv6 约定?或者,当从 MAC 地址生成 fe80 地址时,供应商可能只是被允许做任何他们想做的事情?