Skip to content

Instantly share code, notes, and snippets.

@mbierman
Last active May 16, 2024 03:54
Show Gist options
  • Save mbierman/03b2a962ac04963ef5bbc8354d0ed5d1 to your computer and use it in GitHub Desktop.
Save mbierman/03b2a962ac04963ef5bbc8354d0ed5d1 to your computer and use it in GitHub Desktop.
NOTE: Looks like Apple killed tis in Sonoma. There may be no viable workaround. If I find one, I will update this script. This allows you to create and assign any MAC address you like for macOS Wi-Fi or Ethernet connections. If you don’t supply one a random mac will be created for you.
#!/bin/bash
# v 1.0.2
# https://gist.github.com/mbierman/03b2a962ac04963ef5bbc8354d0ed5d1
# 2022 mbierman
sleep="${1:-5}"
regex="^([0-9A-F]{2}[:]){5}([0-9A-F]{2})$"
getmac () {
rnd=$(openssl rand -hex 6 | sed 's/\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)/\1:\2:\3:\4:\5:\6/')
echo -e "What is the mac address want to set the mac\n\nexample: CA:49:63:9F:78:27\n\nLeave blank to get one generated for you."
read tmp
mac1=${tmp:=$rnd}
mac=$(echo $mac1 | tr '[:lower:]' '[:upper:]')
if [[ $mac =~ $regex ]] ; then
comp=true
echo -e "\n\n Using $mac...\n"
else
comp=false
echo false
fi
}
until [ "$comp" = "true" ]
do
getmac
done
getAdapter () {
echo "What is the adapter you want to set the mac for [en0,en1, etc. use 'ifconfig' if you don't know]"
read adapter
}
until [ "$adapter" ]
do
getAdapter
done
type=$(ifconfig $adapter | grep baseT)
if [ "$type" ]; then
echo "got Ethernet"
type="Ethernet"
else
echo "got Wi-Fi"
type="Wi-Fi"
fi
read -p "Is $adapter $type (y|n) ? " -n 1 -r
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "Exiting. Run again"
exit
fi
sudo ifconfig $adapter down && sleep $sleep && sudo ifconfig $adapter up && \
sudo ifconfig $adapter ether $mac && sudo networksetup -detectnewhardware
@mbierman
Copy link
Author

It's not woking on MACOS sonoma 14.4.1 (23E224), MacBook Air, Apple M1. It showed the error message: "ifconfig: ioctl (SIOCAIFADDR): Can't assign requested address"

What is the interface of your Wi-Fi adapter?

@blueDesert
Copy link

blueDesert commented May 13, 2024 via email

@blueDesert
Copy link

blueDesert commented May 13, 2024

Attached the screenshots:

img

unnamed

@mbierman
Copy link
Author

Looks like Apple killed this in Sonoma. There may be no practical workaround. If I find one, I'll update.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment