OS X YosemiteでMACアドレスを変更する


34

通常、次のコマンドでMACアドレスを変更しました。

# Get a New MAC Address
openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'
# Changing the MAC Address
sudo ifconfig en0 ether d4:33:a3:ed:f2:12

私が入るとき:

ifconfig en0 |grep ether

まだ古いMACアドレスを取得しています:(-誰が助けてくれますか?システムのブート時に自動的に変更するスクリプトまたはシステムが欲しいです。


3
SpoofMAC(pip install SpoofMAC)を試しましたか?これは、私にとってヨセミテでまだ機能します。
L3viathan 14年

回答:


35

考えられる問題の1つは、ランダムに生成されたMACが半分の時間で失敗することです。MACアドレスの最初のバイトは偶数である必要があります(たとえば、0、2、4、6、8、A、C、Eで終わる)。

したがって、たとえば、3b:92:22:cf:55:7eは「3b」が奇数であるため機能しません。詳細については、WikipediaのMACアドレスの記事参照してください(偶数=ユニキャスト、奇数=マルチキャスト)。

この問題を回避するには、ランダムMAC sedコマンドをわずかに編集して、2番目のニブルを強制的に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

2
この方法は私にとってはうまくいきました。これは回答リストの上位に移動する必要があります。
風水

sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z; sudo ifconfig en0 ether a0$(openssl rand -hex 5 | sed 's/\(..\)/:\1/g'); networksetup -detectnewhardware それをほんの少し短くするための1つのこと: 少しランダムになります。
ケビンリダ

27

MACアドレスを変更する前に、デバイスの関連付けを解除する必要があります。の場合en0、次のようになります。

sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z
sudo ifconfig en0 ether d4:33:a3:ed:f2:12
networksetup -detectnewhardware

私はこれを試しましたが、それでもまだうまくいきませんでした。
風水

@FengHuo、それは私のために働いた、10.11.2(私は別のMACアドレスを使用したが)
ミント

10.11.6の作品
パヴェルSzczur

2
あなたは私たちの家族での休暇を両親にとってもっと楽しくしました。ログイン画面の背後にあるホテルのネットワークにApple TVを接続し、MACアドレスをスプーフィングするのが魅力的
でした

6

Ferrosは、このhttps://github.com/feross/spoofを行うためのスイートノードツールを作成しました

彼はPythonバージョンも持っていますhttps://github.com/feross/SpoofMAC


5
Node.jsのをインストールするだけで実行することによって行うことができる何かをするifconfig...種類行き過ぎのようだ
nohillside

2
言うまでもなく、これはノードユーザー向けのソリューションです。また、Python(Macにプリインストールされています)バージョンgithub.com/feross/SpoofMAC
タイラーブーチャ

ifconfigクロスプラットフォームではありません。その「ノードオーバーキル」は、Windows、Linux、およびmacOSで機能します。プラス$ spoof resetは、2語で反対のことを行います。
fregante

4

このコマンドは私にとってはうまく機能します。ランダムスクリプトは、この答えから取得しています: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

1

これを使って

sudo ifconfig en0 lladdr d4:33:a3:ed:f2:12

ifconfigのマニュアルページを参照してください

男ifconfig


0

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`

-1

これは動作します!

手順:

  1. Apple TVのMACアドレスを取得して書き留めます。ネットワーク設定にあります。

  2. MacBook(Yosemite OSバージョン)のMACアドレスを取得します。端末ウィンドウに「ifconfig」と入力します。「En0」セクションにあります。

  3. 以下を切り取り/貼り付けて(XをApple TVのMACアドレスに置き換えて)ターミナルウィンドウに貼り付けます。

MAC OSXをApple TV MACに変更します

sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z

sudo ifconfig en0 ether XX:XX:XX:XX:XX:XX

networksetup -detectnewhardware

  1. プロンプトが表示されたらパスワードを入力し、必要に応じて手順3を繰り返します**

  2. MAC(Apple TVではない)でホテルのワイヤレスに再接続し、サービス条件を受け入れます。

  3. 以下を端末ウィンドウに切り取り/貼り付けします(YをMAC OSX MACアドレスに置き換えます)

MACアドレスを元に戻す

sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z

sudo ifconfig en0 ether YY:YY:YY:YY:YY:YY

networksetup -detectnewhardware

  1. Apple TVでホテルのワイヤレスに接続します。

1
これは質問で説明されている問題とどのように関係していますか?
nohillside

-1
sudo ifconfig en0 ether `openssl rand -hex 5|perl -nE '$s.=join":",/../g}{say"02:$s"'`&& sudo ifconfig en0 down && sudo ifconfig en0 up

私ははるかに賢いです:)


答えを賢くするものは何ですか?この文脈で賢いとはどういう意味ですか?
マイケルオゼルヤンスキー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.