Answers:
一个可能的问题是随机生成的MAC将在一半的时间内失败。MAC地址的第一个字节需要是偶数(例如,以0,2,4,6,8,A,C,E结尾)。
所以,例如,3b:92:22:cf:55:7e不起作用,因为'3b'是奇数。有关详细信息,请参阅Wikipedia的MAC地址文章(偶数=单播,奇数=多播)。
要避免此问题,您可以稍微编辑random-MAC sed命令以强制第二个半字节为0。
openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/./0/2; s/.$//'
将此与hrbrmstr的答案相结合对我有用:
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport --disassociate
sudo ifconfig en0 ether $(openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/./0/2; s/.$//')
networksetup -detectnewhardware
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z; sudo ifconfig en0 ether a0$(openssl rand -hex 5 | sed 's/\(..\)/:\1/g'); networksetup -detectnewhardware
它确实使它变得不那么随意。
您需要在更改MAC地址之前取消关联设备。因为en0
,它将是:
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z
sudo ifconfig en0 ether d4:33:a3:ed:f2:12
networksetup -detectnewhardware
Ferros做了一个甜蜜的节点工具来做这个https://github.com/feross/spoof
他有一个Python版本以及https://github.com/feross/SpoofMAC
ifconfig
似乎有点过分......
ifconfig
不是跨平台的; “节点过度杀伤”适用于Windows,Linux和macOS。加上$ spoof reset
相反,用2个字。
这个命令对我来说很好,我从这个答案中取出了随机脚本:来自MadHatter的https://serverfault.com/a/299564。
sudo ifconfig en0 ether $(perl -e 'for ($i=0;$i<5;$i++){@m[$i]=int(rand(256));} printf "02:%X:%X:%X:%X:%X\n",@m;') && sudo ifconfig en0 down && sudo ifconfig en0 up
以下是我对更改MAC地址的贡献:https://gist.github.com/vinyll/b511159cce2d25edafe78403749088ca
#/bin/sh
# Instructions:
# 1. Copy this script locally and run the following `chmod +x mac-address-spoofer.sh`
# 2. Later, run the following: `./mac-address.spoofer.sh` and see your MAC address changing.
echo "origin MAC address: " `sudo ifconfig en0 ether | grep ether`
sudo ifconfig en0 ether `openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'`
echo "new MAC address: " `sudo ifconfig en0 ether | grep ether`
这有效!
脚步:
获取Apple TV的MAC地址并将其写下来。它位于网络设置中。
获取MacBook的MAC地址(Yosemite OS版本)。在终端窗口中键入“ifconfig”。它将在“En0”部分。
剪切/粘贴以下内容(将Apple与Apple TV MAC地址替换为X)进入终端窗口:
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z
sudo ifconfig en0 ether XX:XX:XX:XX:XX:XX
networksetup -detectnewhardware
如果出现提示,请输入密码,如有必要,请重复步骤3 **
使用您的MAC(非Apple TV)重新连接酒店无线网络并接受服务条款。
将以下内容剪切/粘贴到终端窗口中(用您的MAC OSX MAC地址替换Y)
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z
sudo ifconfig en0 ether YY:YY:YY:YY:YY:YY
networksetup -detectnewhardware
sudo ifconfig en0 ether `openssl rand -hex 5|perl -nE '$s.=join":",/../g}{say"02:$s"'`&& sudo ifconfig en0 down && sudo ifconfig en0 up
我更聪明:)
pip install SpoofMAC
)吗?这对我来说仍然适用于优胜美地。