Ubah alamat MAC di OS X Yosemite

34

Saya biasanya mengubah alamat MAC saya dengan perintah berikut:

# 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

Ketika saya masuk:

ifconfig en0 |grep ether

Saya masih mendapatkan alamat MAC lama :( - Siapa yang bisa membantu? Saya ingin memiliki skrip atau sistem untuk mengubahnya secara otomatis saat boot sistem.

Lupo
sumber
3
Sudahkah Anda mencoba SpoofMAC ( pip install SpoofMAC)? Ini masih bekerja pada Yosemite untuk saya.
L3viathan

Jawaban:

35

Salah satu masalah yang mungkin adalah bahwa MAC yang dihasilkan secara acak akan gagal separuh waktu. Byte pertama dari alamat MAC harus genap (mis. Diakhiri dengan 0, 2, 4, 6, 8, A, C, E).

Jadi, misalnya, 3b: 92: 22: cf: 55: 7e tidak akan berfungsi karena '3b' aneh. Lihat artikel alamat MAC Wikipedia untuk detailnya (even = unicast, odd = multicast).

Untuk menghindari masalah ini, Anda dapat sedikit mengedit perintah sed MAC-acak Anda untuk memaksa gigitan kedua ke 0.

openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/./0/2; s/.$//'

Menggabungkan ini dengan jawaban hrbrmstr bekerja untuk saya:

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
seren
sumber
2
Metode ini bekerja untuk saya. Ini perlu lebih tinggi pada daftar jawaban.
Feng Huo
Satu hal untuk membuatnya sedikit lebih pendek: sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z; sudo ifconfig en0 ether a0$(openssl rand -hex 5 | sed 's/\(..\)/:\1/g'); networksetup -detectnewhardware Itu memang membuatnya sedikit kurang acak.
Kevin Lyda
27

Anda harus melepaskan perangkat sebelum mengubah alamat MAC. Sebab en0, itu akan:

sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z
sudo ifconfig en0 ether d4:33:a3:ed:f2:12
networksetup -detectnewhardware
hrbrmstr
sumber
Saya mencoba ini, dan itu masih tidak berhasil untuk saya.
Feng Huo
@ Fenghua itu bekerja untuk saya, pada 10.11.2 (meskipun saya menggunakan alamat MAC yang berbeda)
Mint
Bekerja pada 10.11.6
Paweł Szczur
2
Anda baru saja membuat liburan keluarga kami jauh lebih menyenangkan bagi orang tua. Harus mendapatkan Apple TV ke jaringan hotel di belakang layar masuk dan
memalsukan
6

Ferros membuat alat simpul manis untuk melakukan ini https://github.com/feross/spoof

Dia memiliki versi Python juga https://github.com/feross/SpoofMAC

Tyler Buchea
sumber
5
Menginstal node.js untuk melakukan sesuatu yang dapat dilakukan dengan hanya menjalankan ifconfigtampaknya agak berlebihan ...
nohillside
2
Agak berjalan tanpa mengatakan bahwa itu adalah solusi untuk pengguna node. Dia juga memiliki versi Python (yang sudah diinstal pada Mac) versi github.com/feross/SpoofMAC
Tyler Buchea
ifconfigbukan lintas platform; bahwa "simpul berlebihan" bekerja pada Windows, Linux dan macOS. Plus $ spoof resetmelakukan yang sebaliknya, dalam 2 kata.
fregante
4

Perintah ini berfungsi dengan baik untuk saya, skrip acak telah saya ambil dari jawaban ini: https://serverfault.com/a/299564 dari MadHatter.

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
Tukan3
sumber
1

Gunakan ini

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

Lihat halaman manual ifconfig

man ifconfig

Clive819
sumber
0

Inilah kontribusi saya untuk mengubah alamat MAC Anda: 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`
vinyll
sumber
-1

Ini bekerja!

Tangga:

  1. Dapatkan alamat MAC Apple TV Anda dan tuliskan. Itu ditemukan di Pengaturan Jaringan.

  2. Dapatkan alamat MAC MacBook Anda (versi OS Yosemite). Ketik "ifconfig" di jendela terminal. Itu akan berada di bagian "En0".

  3. Potong / rekatkan yang berikut ini (ganti X dengan alamat MAC Apple TV Anda) ke jendela teminal:

ubah MAC OSX ke Apple TV MAC

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

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

networksetup -detectnewhardware

  1. Masukkan kata sandi Anda jika diminta dan ulangi langkah 3, jika perlu **

  2. Sambungkan kembali ke nirkabel hotel dengan MAC Anda (bukan Apple TV) dan terima ketentuan layanan.

  3. Potong / rekatkan yang berikut ini ke jendela terminal (ganti Y dengan alamat MAC OSX Anda)

ubah alamat MAC kembali ke aslinya

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

sudo ifconfig id0 ether YY: YY: YY: YY: YY: YY

networksetup -detectnewhardware

  1. Sambungkan ke nirkabel hotel dengan Apple TV Anda.
Menandai
sumber
1
Bagaimana ini berhubungan dengan masalah yang dijelaskan dalam pertanyaan?
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

Saya jauh lebih pintar :)

Mantovani
sumber
Apa yang membuat jawaban Anda lebih pintar? Apa artinya lebih cerdas dalam konteks ini?
Michael Ozeryansky