🔗 MAC Address to IPv6 Converter
Convert any MAC address to IPv6 link-local and global unicast addresses using EUI-64
| MAC Address | EUI-64 IID | Link-Local IPv6 |
|---|---|---|
| 00:11:22:33:44:55 | 0211:22FF:FE33:4455 | FE80::211:22FF:FE33:4455 |
| AA:BB:CC:DD:EE:FF | A8BB:CCFF:FEDD:EEFF | FE80::A8BB:CCFF:FEDD:EEFF |
| DC:A6:32:AB:CD:EF | DEA6:32FF:FEAB:CDEF | FE80::DEA6:32FF:FEAB:CDEF |
| 00:50:56:AA:BB:CC | 0250:56FF:FEAA:BBCC | FE80::250:56FF:FEAA:BBCC |
| B4:FB:E4:12:34:56 | B6FB:E4FF:FE12:3456 | FE80::B6FB:E4FF:FE12:3456 |
| FC:AA:14:C5:D2:E8 | FEAA:14FF:FEC5:D2E8 | FE80::FEAA:14FF:FEC5:D2E8 |
The MAC address is made of 48 bits, while IPv6 address has 128 bits. Although the difference is huge you can easily turn MAC address into IPv6 link-local address. You derive the latter from the MAC or Ethernet hardware address using the EUI-64 method.
Free online programs exist that convert any MAC address to IPv6 and show the steps of the process
How to Turn a MAC Address into an IPv6 Link-Local Address
Here is how the process works. We take the MAC address from the interface and split it in two parts. For instance, we start with 52:74:f2:b1:a8:7f.
We put ff:fe in the center, so it becomes 52:74:f2:ff:fe:b1:a8:7f. Therefore we rewrite it as IPv6 form: 5274:f2ff:feb1:a87f. Now we change the first octet from hex to binary: 52 becomes 01010010.
We reverse the 7th bit (counting from 0). Later we convert this octet back to hex and add the prefix fe80:: to get the complete addres.
Other sample will explain that better. We start with de:ad:be:ef:ed:00. We put ff:fe in the center, so we get de:ad:be:ff:fe:ef:ed:00.
Rewritten as IPv6 form: dead:beff:feef:ed00. We turn the first octet to binary: 11011110. We reverse the bit in index 6, so it becomes 11011100.
Back to hex, which gives dc. We substitute the first octet, resulting dcad:beff:feef:ed00. Finally we add fe80:: and we have fe80::dcad:beff:feef:ed00.
One more sample: the MAC address 00:01:04:76:2A:5C should be fe80::0201:04ff:fe76:2a5c after the whole conversion.
Also exists a tool that does the opposite operation. It often helps to turn IPv6 link-local addresses, for example from ping answers (back to MAC addresses). Converting known MAC address to fe80:: IPv6 form is useful for connecting to a specific device.
IPv6 address from MAC always has ff:fe in the center of the interface ID part. If there is something else there, like 70:16, then the address uses privacy extensions or random generation.
For EUI-64 you must put FFFE, not FFE. The 7th bit flips, not the second. That is a common mistake that you easily find.
Programs like ipv6calc by Peter Bieringer can create a full IPv6 address from MAC and a given prefix. Python scripts and shell functions automate this conversion according to RFC 4862. Some people use spreadsheets to read MAC addresses from codes on network labels, enter them in cells and do calculations to produce IPv6link-local addresses.


