1. 在终端随机生成mac 地址
echo "78:2d:ad:$(openssl rand -hex 3 | sed 's/\(..\)/\1:/g; s/.$//')"
这段代码可以分成以下几个部分解释:
echo "78:2d:ad:$(...)"- 输出一个字符串,包含了固定的MAC地址前三段"78:2d:ad:",可在OUI获取,以及在括号中的命令执行结果,也就是生成的随机MAC地址的最后三段。
openssl rand -hex 3- 生成3个随机字节。
openssl rand是 OpenSSL 的一个随机数生成工具,使用-hex选项生成十六进制格式的随机数。
sed 's/\(..\)/\1:/g; s/.$//'- 将前面命令生成的十六进制字符串中的字节两两分组,然后在每组之间添加一个冒号,最后去掉一个多余冒号。
sed是一个用于文本处理的流编辑器,其中s是替换命令的首字母,g表示替换所有匹配的文本。
因此,执行这段代码会生成一个符合要求的MAC地址,其中前三段是固定的"78:2d:ad",后三段是随机生成的。由于 OpenSSL 的随机数生成机制,每次执行都会生成不同的随机MAC地址。
2. 更换mac地址
sudo ifconfig en0 ether xx:xx:xx:xx:xx:xx
当您重新启动 Mac 计算机时,Mac 地址将恢复为默认值。因此,无论何时您需要或想要更改 macOS 中的 Mac 地址,您都可以在终端应用程序中键入上述命令之一,然后就可以开始了。
更改 Mac 地址后,您可能还需要重新启动 Wi-Fi 连接以避免网络问题。
关闭网络
sudo ifconfig en0 down
开启网络
sudo ifconfig en0 up
3. 一键更换mac地址
echo "78:2d:ad:$(openssl rand -hex 3 | sed 's/\(..\)/\1:/g; s/.$//')" | xargs sudo ifconfig en0 ether
4. 检查是否更新成功
ifconfig en0 | grep ether
5. 其他
- 打印所有硬件地址列表
networksetup -listallhardwareports
2. 为什么不直接生成6位的随机字节?
MAC地址是48位二进制数字,通常表示为12个十六进制数,每两个十六进制数之间用冒号或连字符隔开。合法的MAC地址规则如下:
- MAC地址由48位二进制数构成,每个二进制数位只能是0或1。
- MAC地址由12个十六进制数构成,每个十六进制数由0-9和A-F组成,不区分大小写。
- 十六进制数之间用冒号(:)或连字符(-)隔开,如00:11:22:33:44:55或00-11-22-33-44-55。
- MAC地址的第一位为最高有效位(MSB),第48位为最低有效位(LSB)。
- 一些MAC地址有特殊用途,如广播地址(FF:FF:FF:FF:FF:FF)和组播地址(01:00:5E:00:00:00到01:00:5E:7F:FF:FF)等,不应被分配给网络设备。
总之,合法的MAC地址必须符合上述规则,否则可能会导致网络设备无法正常通信。
- 电气和电子工程师协会 (IEEE) OUI
这个地址是一个文本文件,记录了IEEE(国际电气电子工程师协会)为各个厂商分配的唯一标识符(OUI)。OUI是一个24位的数字,通常以6位十六进制数的形式表示,前3个字节表示厂商标识符,后3个字节表示厂商内部设备的唯一标识符。 这个文本文件包含了所有已经分配的OUI,可以用于识别网络中的设备。在网络管理和安全领域,使用OUI可以帮助管理员识别网络中的设备,进行设备管理、安全审计、故障排除等操作。
6. 快捷指令一键更换
可选电脑品牌