使用方法
MAC地址生成器 的用法很简单。第一步,填「生成数量」,默认是 10 个,范围 1 到 200。第二步,选分隔符:冒号、连字符、点分组或无分隔;再选大小写,默认大写。第三步,选地址类型,默认「本地管理 · 单播」,也就是把首字节的本地管理位和单播位设好,这种地址不会和真实厂商烧录的网卡冲突。第四步,如果需要固定厂商前缀,可在 OUI 框填 6 位十六进制(如 0A1B2C),留空则前三字节也随机。最后点「立即生成」(在数量框按回车也能触发),结果直接列在下方,点「复制结果」即可带走。生成的是随机值,每次都不一样,仅用于测试和演示。
这个MAC地址生成器能解决什么问题
写网络程序做单元测试、打桩时,经常需要一批不像重复、又不会撞真实设备的 MAC。这个工具一次给一堆,省得手写。教网络基础课,用它能现场演示「冒号 / 连字符 / 点分组」三种写法其实是同一个地址。做设备模拟、虚拟机克隆、容器网络实验,给每台临时分配一个本地管理地址最省心,绝不会和局域网里真实网卡抢地址。它也适合核对首字节的 U/L、I/G 两个位到底怎么算——改一下地址类型就能看到首字节变化。本工具只生成随机地址,不做厂商 OUI 反查,那种需求请用 MAC 查询类工具。
原理与规则说明
每个 MAC 是 6 字节共 48 位,写成 12 个十六进制数字。随机部分用浏览器原生的 crypto.getRandomValues 取字节,它比普通 Math.random 更均匀、更适合当标识符来源。生成后,按你选的地址类型改写首字节的最低两位:bit0 是 I/G 位(0 单播、1 组播),bit1 是 U/L 位(1 本地管理、0 全局)。默认「本地管理 · 单播」就把首字节设成 bit1=1、bit0=0,例如示例首字节 0A(二进制 00001010)就是这样。随后每字节用 toString(16) 转成两位十六进制,按所选分隔符拼起来。如果填了 OUI 前缀,则固定前 3 字节、后 3 字节仍随机——这样生成的仍属「本地管理地址」语义,不与 IEEE 注册的全球地址冲突。整套结构遵循 IEEE 802 对 48 位 MAC 的定义:前 24 位是 OUI(厂商代码),后 24 位是厂商内序号。
完整示例(数值仅作演示)
取固定示例字节 0A 1B 2C 3D 4E 5F。首字节 0A 二进制是 00001010,bit0=0(单播)、bit1=1(本地管理),正符合要求。按冒号大写拼成 0A:1B:2C:3D:4E:5F;按连字符是 0A-1B-2C-3D-4E-5F;按点分组(每 2 字节一组)是 0A1B.2C3D.4E5F;无分隔是 0A1B2C3D4E5F;小写则是 0a:1b:2c:3d:4e:5f。这套格式变体和「载入示例」展示的内容、以及下方对照表第 1 到 5 行(四种分隔符加大写小写)三处完全一致,方便你核对拼接逻辑对不对。默认一次生成 10 个,数量框里写的就是 10。
输入范围与对照表
下面这张表列出格式与首字节位含义(前 12 行直出,余下点「加载更多」)。一个 MAC 总计 48 位,OUI 占前 24 位、本地序号占后 24 位,全地址空间 2^48 个。复制整张表用「复制对照表」,导出用 CSV(带 BOM)或 JSON(不带 BOM)。
| 维度 | 取值 / 说明 |
|---|---|
| 冒号格式 | 0A:1B:2C:3D:4E:5F |
| 连字符格式 | 0A-1B-2C-3D-4E-5F |
| 点分组格式 | 0A1B.2C3D.4E5F |
| 无分隔格式 | 0A1B2C3D4E5F |
| 小写格式 | 0a:1b:2c:3d:4e:5f |
| 首字节 bit0(I/G) | 0 = 单播,1 = 组播 |
| 首字节 bit1(U/L) | 1 = 本地管理,0 = 全局 |
| OUI 长度 | 前 3 字节 = 24 位 |
| 完整地址长度 | 6 字节 = 48 位 |
| 本地序号长度 | 后 3 字节 = 24 位 |
| 单播地址 | 首字节 bit0 = 0 |
| 组播地址 | 首字节 bit0 = 1 |
| 本地管理地址 | 首字节 bit1 = 1(本工具默认) |
| 全局(烧录)地址 | 首字节 bit1 = 0,由 IEEE 分配给厂商 |
| 可能地址总数 | 2^48 ≈ 281 万亿个 |
| 与真实烧录地址碰撞 | 本地管理位不同,实际不会冲突 |
输入范围、边界与精度说明
生成数量必须在 1 到 200 之间:填 0、负数、小数、空或超过 200 都会报错并说明正确范围,不会静默生成 0 个或悄悄改成别的数。OUI 前缀如果填了,必须是正好 6 位十六进制(0–9、a–f、A–F),像「0G1B2C」这种含非法字符或位数不对会具体提示「OUI 前缀必须是 6 位十六进制」。首字节的位由地址类型决定,不会被随机覆盖,所以生成的本地管理地址始终带正确的 U/L 位。随机部分来自 crypto.getRandomValues,单次生成几十到上百个都瞬出;极大量(上千)建议分批。生成的地址是随机标识符,不保证任何真实厂商含义,也绝不应该拿去冒充真实网卡。
常见问题
生成的 MAC 能当真实网卡地址用吗?
不能。默认生成的是本地管理地址,只适合测试、打桩、教学演示;真要改网卡物理地址请走系统网络设置,且须遵守所在网络的规定。
为什么默认是「本地管理」而不是全球地址?
本地管理位的地址不会和 IEEE 分配给厂商的烧录地址冲突,最适合测试和实验,避免误伤局域网里真实设备。
冒号、连字符、点分组是同一种地址吗?
是。仅是书写格式不同,对应的 6 字节完全一样。点分组是老式令牌环网写法,按每 2 字节一组用点分开。
OUI 前缀填了会怎样?
前 3 字节固定为你填的厂商代码,后 3 字节仍随机。这样既带指定前缀,又保持本地管理语义,不会冒充该厂商真实设备。
生成数量能超过 200 吗?
当前上限 200,填更大数会提示「1 到 200 之间」。需要更多请分几次生成再合并,避免一次产出过长列表。
组播地址能分配给主机吗?
不建议。组播位为 1 的地址用于一对多通信,不能当单台主机的唯一地址,工具允许生成是为了演示位含义。
生成的内容会上传吗?
不会。随机和拼接全在浏览器本地完成,刷新即清空,地址不离开你的设备。
和 UUID 生成器有什么区别?
UUID 是 128 位标识符,MAC 是 48 位网络地址,格式和用途都不同;本工具专门产出符合 IEEE 802 写法的 MAC。
相关工具
这些工具都和 MAC地址生成器 一样在本地运行: