2024年4月28日追記
最新のMacOSだとMacアドレスを変更することはできなくなった
Apple、macOS 14.4 Sonomaで「airport」コマンドを非推奨とし、将来のリリースで削除。
一発で実行させたいシェルスクリプト
thr3a-m2:~ root# cat /var/root/change.sh #!/bin/bash status=1 while [ $status -ne 0 ] do /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -z && sleep 1 && openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//' | xargs ifconfig en0 ether && networksetup -detectnewhardware status=$? if [ $status -ne 0 ]; then echo "retry" fi done echo "done"
無料WIFIとかはクッキーではなくMACアドレスで判別してるケースが多い
ってことでMac OSでMACアドレスを変更するメモ(同じマックでややこしい)
変更前の状態を確認
理由はもちろん元に戻すため
$ ifconfig en0 en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 46:e2:05:70:81:1f nd6 options=1<PERFORMNUD> media: autoselect (<unknown type>) status: inactive
生成
ランダムなMACアドレスを生成 ベンダー番号が元のと合ってないとか言わないこと
$ openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//' a6:e6:a5:ed:5d:1d
変更
生成したダミーのMACアドレスにすり替える
# /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z # ifconfig en0 ether a6:e6:a5:ed:5d:1d $ networksetup -detectnewhardware
確認
$ ifconfig en0 en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether a6:e6:a5:ed:5d:1d inet6 fe80::44e2:5ff:fe70:811f%en0 prefixlen 64 scopeid 0x4 inet 10.4.10.171 netmask 0xfffe0000 broadcast 10.5.255.255 nd6 options=1<PERFORMNUD> media: autoselect status: active
1行でやりたい人向け
openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//' | xargs ifconfig en0 ether && networksetup -detectnewhardware
Monterey以降の場合
先に以下のコマンドを実行しておく
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -z