Изменить 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)? Это все еще работает на Йосемити для меня.
L3viathan

Ответы:


35

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

Так, например, 3b: 92: 22: cf: 55: 7e не будет работать, потому что «3b» нечетное. Подробности смотрите в статье 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

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
Павел Щур

2
Вы только что сделали наш семейный отдых намного более приятным для родителей. Пришлось
подключить

6

Феррос сделал замечательный инструмент для работы с узлами, чтобы сделать это 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 словах.
Фреганте

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

человек 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). Введите «ifconfig» в окне терминала. Это будет в разделе «En0».

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

изменить 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-адрес MAC OSX)

изменить 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

Моя намного умнее :)


Что делает ваш ответ умнее? Что умнее значит в этом контексте?
Михаил Озерянский
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.