เปลี่ยนที่อยู่ 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ของ Wikipedia สำหรับรายละเอียด (แม้แต่ = unicast, odd = multicast)

เพื่อหลีกเลี่ยงปัญหานี้คุณสามารถแก้ไขคำสั่ง sed-MAC แบบสุ่มของคุณเล็กน้อยเพื่อบังคับให้ตอดที่สองเป็น 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
วิธีนี้ใช้ได้ผลสำหรับฉัน สิ่งนี้จะต้องสูงขึ้นในรายการคำตอบ
Feng Huo

สิ่งหนึ่งที่ทำให้สั้นกว่าเล็กน้อยคือ sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z; sudo ifconfig en0 ether a0$(openssl rand -hex 5 | sed 's/\(..\)/:\1/g'); networksetup -detectnewhardware ทำให้สุ่มน้อยลง
Kevin Lyda

27

คุณต้องยกเลิกการเชื่อมโยงอุปกรณ์ก่อนที่จะเปลี่ยนที่อยู่ MAC สำหรับen0มันจะเป็น:

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

ฉันลองสิ่งนี้และมันก็ไม่ได้ผลสำหรับฉัน
Feng Huo

@FengHuo มันใช้งานได้ดีสำหรับฉันในวันที่ 10.11.2 (แม้ว่าฉันจะใช้ที่อยู่ MAC ที่แตกต่างกัน)
มิ้นต์

ทำงานบน 10.11.6
Paweł Szczur

2
คุณเพียงแค่ทำให้วันหยุดของครอบครัวของเราสนุกสนานมากขึ้นสำหรับผู้ปกครอง ต้องนำ Apple TV เข้าสู่เครือข่ายของโรงแรมที่อยู่ด้านหลังหน้าจอเข้าสู่ระบบและการปลอมแปลงที่อยู่ MAC นั้นใช้งานได้ดี :)
stevenhaddox

6

Ferros สร้างเครื่องมือโหนดที่น่าสนใจที่จะทำเพียงแค่https://github.com/feross/spoof

เขามีเวอร์ชั่น Python เช่นกันที่https://github.com/feross/SpoofMAC


5
การติดตั้ง Node.js ที่จะทำบางสิ่งบางอย่างซึ่งสามารถทำได้โดยเพียงแค่การทำงานifconfigดูเหมือนว่าชนิดของ overkill ...
nohillside

2
ชนิดของการไปโดยไม่บอกว่ามันเป็นทางออกสำหรับผู้ใช้โหนด นอกจากนี้เขายังมี Python (ซึ่งติดตั้งมาพร้อมกับ Mac) รุ่น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

ผู้ชาย 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's ด้วยที่อยู่ 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 address ของคุณ 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

ฉันฉลาดขึ้นมาก :)


อะไรทำให้คำตอบของคุณฉลาดขึ้น อย่างชาญฉลาดหมายถึงอะไรในบริบทนี้
Michael Ozeryansky
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.