1. MAC 地址结构
MAC(Media Access Control)地址长 48 位(6 字节),通常写作以冒号或连字符分隔的 6 组两位十六进制数。前 3 字节(24 位)是 IEEE 分配给厂商的 OUI(Organizationally Unique Identifier),后 3 字节是厂商自行分配的序列号。思科设备按惯例以点分隔的 3 组四位十六进制数表示(如 aabb.ccdd.eeff)。
使用浏览器的 crypto.getRandomValues 生成 6 字节随机数,创建随机 MAC 地址。可选择分隔符与大小写,也可选择强制"本地管理·单播"位以获得安全的测试地址,或选择真实厂商 OUI 前缀以生成看起来更真实的地址。
与 IP 地址段类似,OUI(前 3 字节)是 IEEE 分配给真实厂商的值。此列表仅收录 20 个知名前缀作为代表样本,不能替代 IEEE 公开的完整 OUI 数据库(有意不在本工具范围内)。
开启后,会调整第一个字节的低 2 位,使 U/L 位(0x02)置 1(本地管理),I/G 位(0x01)置 0(单播)。适合生成不会与真实硬件冲突的测试/虚拟地址。选择厂商 OUI 时,由于该地址已是全局管理地址,此选项会自动禁用。无论是否勾选,本工具生成的地址始终为单播(I/G 位=0)。
MAC 地址第一个字节的最低 2 位具有特殊含义:I/G(Individual/Group)位为 0 表示单播(单个设备),为 1 表示多播。U/L(Universal/Local)位为 0 表示 IEEE 分配的全局唯一地址,为 1 表示管理员自行指定的本地管理地址。虚拟机、容器和测试环境通常使用本地管理单播地址(第一个字节第二个十六进制字符以 2、6、A 或 E 结尾)以避免与真实硬件地址冲突。
MAC(Media Access Control)地址长 48 位(6 字节),通常写作以冒号或连字符分隔的 6 组两位十六进制数。前 3 字节(24 位)是 IEEE 分配给厂商的 OUI(Organizationally Unique Identifier),后 3 字节是厂商自行分配的序列号。思科设备按惯例以点分隔的 3 组四位十六进制数表示(如 aabb.ccdd.eeff)。
若第一个字节的次低位(U/L)为 0,表示这是 IEEE 分配的全局唯一地址;为 1 则表示由软件或管理员自行指定的本地管理地址。若最低位(I/G)为 0,表示单播(特定单一设备);为 1 则用于多播/广播。为测试环境、虚拟网络接口或容器分配新 MAC 时,使用"本地管理 + 单播"组合(两位分别置 1 和 0)是避免与真实硬件冲突的标准做法。
本工具提供的 OUI 列表是 Cisco、Apple、VMware、Raspberry Pi 等 20 个知名前缀的代表样本,并不能替代 IEEE 公开的、包含数万条记录的完整 OUI 数据库。选择厂商前缀后仅随机生成后 3 字节,因此生成的地址看起来属于该厂商,但实际上并非该厂商真正发放的地址。请仅将其用于测试、文档或教学目的,不要用于冒充真实网络设备。