Змініть MAC-адресу в OS X Yosemite


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)? Це все ще працює для Yosemite для мене.
L3viathan

Відповіді:


35

Однією з можливих проблем є те, що випадково генеровані MAC будуть виходити з ладу половину часу. Перший байт MAC-адреси повинен бути рівним (наприклад, кінець у 0, 2, 4, 6, 8, A, C, E).

Так, наприклад, 3b: 92: 22: cf: 55: 7e не працюватиме, тому що "3b" непарно. Докладні відомості див. У статті про адресу MAC у Вікіпедії (even = unicast, odd = multicast).

Щоб уникнути цієї проблеми, ви можете злегка відредагувати свою випадкову команду 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

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 це робить його трохи менш випадковим.
Кевін Ліда

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
Paweł

2
Ви щойно зробили наш сімейний відпочинок набагато приємнішим для батьків. Довелося потрапити на Apple TV в мережу готелю за екраном входу в систему та підробляти MAC-адресу привабливо :)
stevenhaddox

6

Ferros зробив солодкий інструмент для вузлів, щоб зробити саме це https://github.com/feross/spoof

У нього також є версія Python https://github.com/feross/SpoofMAC


5
Установка node.js для того, щоб зробити щось, що можна зробити, просто запустившись, ifconfigвидається надмірним ...
nohillside

2
Нічого не кажучи, що це рішення для користувачів вузлів. Також у нього є версія Python (яка попередньо встановлена ​​на Macs) версія github.com/feross/SpoofMAC
Tyler Buchea

ifconfigне є крос-платформою; що "overkill" вузлів працює в Windows, Linux та macOS. Плюс $ spoof resetробить навпаки, у 2 словах.
fregante

4

Ця команда для мене добре працює, випадковий сценарій я взяв з цієї відповіді: https://serverfault.com/a/299564 від 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

1

Використовуй це

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

Дивіться сторінку керівництва ifconfig

man 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. Отримайте MAC-адресу свого Apple TV і запишіть її. Він знайдений у налаштуваннях мережі.

  2. Отримайте MAC-адресу MacBook (версія Yosemite OS). Введіть "ifconfig" у вікно терміналу. Це буде в розділі "En0".

  3. Виріжте / вставте наступне (замінюючи X на ваш MAC-адресу Apple TV) у тимчасове вікно:

змінити MAC OSX на Apple TV MAC

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

sudo ifconfig en0 ефір 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 ефір 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

Моя набагато розумніша :)


Що робить вашу відповідь розумнішою? Що в цьому контексті означає розумніший?
Михайло Озерянський
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.