Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

From Wikipedia:

Every Ethernet network controller has a unique 48-bit serial number called a MAC address, which is stored in read-only memory. Every computer on an Ethernet network must have at least one controller. Normally it is safe to assume that no two network controllers will share the same address, because controller vendors purchase blocks of addresses from the Institute of Electrical and Electronics Engineers (IEEE) and assign a unique address to each controller at the time of manufacture.

Since MAC addresses are assigned at the time of manufacture and stored in read-only memory, how is it still possible to change a MAC address on some computers?

share|improve this question
The first two answers are both correct. ROMs are rarely genuinely read only, as firmware updates are sometimes required (and mac address change be changed through the same process and survive a reboot), however, mac address changes you read about generally happen at the software level and are temporary. – Paul Jan 18 '12 at 11:24
The article you linked to is not entirely correct based on that quote. It is hard to accept the claim that the MAC address is a unique address because that is not guranteed. This is also the reason its not used outside of a local network. – Ramhound Jan 18 '12 at 12:20

The address recorded in ROM isn't altered. The changed MAC address is just that which is reported in the outgoing packets. It's like posting a letter with someone else's "From" address, with the additional ability that you can still manage to receive any replies.

share|improve this answer

Because it isn't actually read-only.

Most likely the mac address is stored in a non-volatile rewritable memory, like EEPROM--contrary to what the wikipedia article might suggest.

share|improve this answer
This is not true. The address stored on the NIC is the default one to use by the OS and all frames are generated by software. – phil Jan 18 '12 at 12:56
@phil so the software e.g. calculates the CRCs contained in the ethernet frames? – artistoex Jan 18 '12 at 13:45
@phil Okay, you're right. Most of the time, ethernet frames are generated in software (though large segment offload is one exception), so that argument is invalid. I removed it from the answer. – artistoex Jan 18 '12 at 15:48

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.