How to change Mac OS X network MAC address

How to change Mac OS X network MAC address? How to solve “ifconfig: ioctl (SIOCAIFADDR): Can’t assign requested address” error on newer Mac OS X.

What is MAC address

A media access control address (MAC address) is a unique identifier assigned to a network interface controller (NIC) for use as a network address in communications within a network segment. This use is common in most IEEE 802 networking technologies, including Ethernet, Wi-Fi, and Bluetooth. Within the Open Systems Interconnection (OSI) network model, MAC addresses are used in the medium access control protocol sublayer of the data link layer. As typically represented, MAC addresses are recognizable as six groups of two hexadecimal digits, separated by hyphens, colons, or without a separator. For example: 12:34:56:78:90:ab.

Reasons to change MAC address

You may change MAC address for various reasons, like:

  • Protect your privacy by avoid expose your real hardware info.
  • Work around MAC filter, e.g. some network only allow a limited MAC to be connected.
  • Network spoof attack/testing.

How to change MAC address on Mac OS X

To change MAC address, you can use ifconfig on older Mac OS, for example:

sudo ifconfig en0 ether 12:34:56:78:90:ab

Here en0 is your network interface name. To see available network interfaces:

ifconfig -a

However, on the newer Mac OS like Monterey does not allow to change network MAC address, and you got error “ifconfig: ioctl (SIOCAIFADDR): Can’t assign requested address”:

sudo ifconfig en0 ether 12:34:56:78:90:ab
ifconfig: ioctl (SIOCAIFADDR): Can't assign requested address

You can’t change the network MAC address while the interface is associated with an SSID.

You need disassociate from network:

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

airport is a utility app on your Mac to set up and manage your wireless network.

Usage: airport <interface> <verb> <options>
  -z        --disassociate       Disassociate from any network

Then you can use ifconfig to change network MAC address.

You can also use macchannger in brew to change network MAC address.

brew install macchanger
macchanger -m 12:34:56:78:90:ab en0

Note: macchannger use the same command described here.


To change network MAC address on Mac, run following two commands:

sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 -z
sudo ifconfig en0 ether 12:34:56:78:90:ab


DNS Firewall for iOS

Encrypted your DNS to protect your privacy and firewall to block phishing, malicious domains, block ads in all browsers and apps