【发布时间】:2019-12-30 06:52:16
【问题描述】:
如何在 Ruby 中将00:16:3e:15:d3:a9 之类的 mac 地址转换为 IPv6 链接本地地址(修改后的 EUI-64,例如 fe80::216:3eff:fe15:d3a9)?
到目前为止,我有以下步骤:
mac = "00:16:3e:15:d3:a9"
mac.delete!(':') # Delete colons
mac.insert(6, 'fffe') # Insert ff:ee in the middle
mac = mac.scan(/.{4}/) # Split into octets of 4
next step 将翻转第一个八位字节的第六位,我遇到了麻烦。
【问题讨论】:
-
您遇到的问题是您正在尝试使用文本来做到这一点。 IP 地址和 MAC 地址都是二进制数。您可以简单地使用按位或将 MAC 地址的 U/L 位设置为二进制数。然后,您可以转换回文本。