网卡的 MAC 地址(比如 00:1A:2B:3C:4D:5E)看起来是一串随机的十六进制数字,但前半段和后半段承担着完全不同的职责——前半段标识生产厂商,后半段才是真正区分设备的部分。
MAC(Media Access Control)地址是网络设备(网卡、蓝牙模块等)在链路层的物理地址,长度固定 48 位(6 字节),通常写成 6 组十六进制数,用冒号或短横线分隔:00:1A:2B:3C:4D:5E。这 48 位从设计上分成两段,各占 24 位:
00:1A:2B | 3C:4D:5E
前24位:OUI(厂商标识) | 后24位:设备序列号(厂商自行分配)
OUI(Organizationally Unique Identifier,组织唯一标识符)是 MAC 地址的前 24 位,由 IEEE(电气电子工程师学会)统一分配给硬件生产厂商——每个厂商申请到自己专属的 OUI 前缀后,后 24 位序列号由厂商自己分配管理,保证不重复即可。这也是为什么知道一个 MAC 地址的前半段,就能反查出这块网卡是哪家厂商生产的(比如常见的虚拟化软件 VMware、VirtualBox 都有各自专属的 OUI 前缀,通过 MAC 地址前缀可以判断一台机器是不是虚拟机)。
MAC 地址第一个字节里藏着两个具有特殊含义的二进制位,不是随便取值的:
这也是为什么"随机生成 MAC 地址"的工具通常会把本地管理位设为 1——表明这是一个软件生成的、不需要保证全球唯一性的临时地址,不会和真实硬件厂商分配的地址产生冲突。
在线工具:MAC地址生成