Cette page est disponible en anglais uniquement. La navigation reste dans votre langue.

Testing & QA · 6 min read

MAC Address Lookup in 2026: OUI Prefixes, I/G and U/L Bits

How to read a MAC address correctly: the 48-bit layout, OUI prefixes, the I/G and U/L bits, randomized addresses, EUI-64 link-local conversion, and lookup bugs.

By Charlie Simmon ·

On this page
  1. The 48-bit layout
  2. The first octet: I/G and U/L
  3. OUI, EUI-48, and the global/local split
  4. Randomized addresses and why lookups fail now
  5. EUI-64 and the IPv6 link-local interface identifier
  6. Textual formats and how to parse them
  7. Errors a lookup should report
  8. Generating MAC fixtures that cannot collide
  9. Questions

A MAC address lookup starts with 48 bits and six octets, and almost every mistake comes from ignoring two bits inside the first octet. The I/G bit says whether the frame is unicast or multicast. The U/L bit says whether the prefix is globally assigned or locally administered. Get those wrong and a vendor lookup returns confident nonsense.

This guide covers the byte layout, the bit numbering that trips people up, why modern devices randomize their addresses, how a 48-bit address becomes an EUI-64 interface identifier for IPv6 link-local, and the errors that a lookup tool should surface instead of guessing. It does not claim that any address belongs to a real device; the tools here parse and generate synthetic values.

The 48-bit layout

A MAC-48 address is six octets, 48 bits, usually written as six hexadecimal pairs. The first three octets are the Organizationally Unique Identifier, the OUI, assigned by the IEEE to a manufacturer. The last three are assigned by that manufacturer, though in practice many vendors derive them from a serial or a random source.

Hex digits are written most significant first in the textual form, but the IEEE transmits each octet least significant bit first on the wire. That mismatch is why the first octet is the only place where bit numbering confuses everyone: bit 0 in the standard means the least significant bit of that first octet as written, not the leftmost bit of the string.

  • Total length: 48 bits, 6 octets, 12 hexadecimal digits
  • OUI: the first 24 bits, assigned by the IEEE
  • NIC portion: the last 24 bits, assigned by the OUI holder
  • Textual form: most significant nibble first within each octet
  • Wire order: each octet transmitted least significant bit first

The first octet: I/G and U/L

Two bits in the first octet carry meaning. Bit 0 is the Individual/Group bit: zero means a unicast address for one interface, one means a group or multicast address. Bit 1 is the Universal/Local bit: zero means the address is globally administered under an OUI, one means it was assigned locally, typically by software.

Because hexadecimal digits are four bits, these two bits are always encoded in the last hex digit of the first octet. That is why the second character of the first octet is always even for a unicast address and odd for a multicast address, and why locally administered unicast addresses in the 02, 06, 0A, 0E, 12 and similar pattern show up as the first octet of randomized Wi-Fi addresses.

First octetBinaryI/GU/LMeaning
000000 00000 unicast0 globalNormal OUI-assigned interface
020000 00100 unicast1 localLocally administered, often randomized
010000 00011 multicast0 globalStandard multicast group
030000 00111 multicast1 localLocally scoped multicast
330011 00111 multicast1 localIPv6 multicast MAC, 33:33 prefix
FF1111 11111 multicast1 localBroadcast frame

OUI, EUI-48, and the global/local split

The OUI is a 24-bit assignment. When the U/L bit is zero, the first three octets identify the assignee, and a lookup against the IEEE registry is meaningful. When the U/L bit is one, the first three octets were chosen by the device or the operating system and no registry entry can exist, no matter how plausible the prefix looks.

The IEEE also issues 36-bit assignments under the MA-S registry, which share the first 24 bits with other assignees and add four more bits in the third octet. A lookup that only checks the first three octets will attribute those addresses to the wrong holder. If precision matters, check the assignment size before you trust the vendor name.

  • 24-bit MA-L: classic OUI, three octets, the common case
  • 28-bit MA-M: shares a 24-bit block with other assignees
  • 36-bit MA-S: shares a 24-bit block, adds four bits of the third octet
  • U/L bit set: skip the registry entirely, there is no assignee

Randomized addresses and why lookups fail now

Modern operating systems rotate Wi-Fi addresses. iOS and macOS use a private address per network, Android randomizes per SSID, and Windows offers random hardware addresses. All of these set the U/L bit, which is the honest signal that the prefix is not a vendor allocation. Lookups that ignore the bit will produce a vendor name for a prefix that nobody was ever assigned.

Randomization also breaks assumptions in network controls. A MAC filter is not authentication, because the address is software-set on most platforms. The same property makes MAC addresses useless as a stable device identifier in analytics. If your product keys a licence or a device record on a MAC address, it will fragment on every network that rotates addresses and it can be spoofed trivially.

  • Randomized address: U/L bit set, prefix chosen locally
  • Per-network rotation means the value is not a stable device id
  • MAC filtering is trivial to bypass and is not access control
  • Virtual machines and containers often inherit or generate local prefixes
  • Always parse the bits before calling a vendor registry

EUI-64 and the IPv6 link-local interface identifier

EUI-64 turns a 48-bit address into 64 bits in three steps: split the OUI and the NIC portion, insert FF:FE between them, and flip the U/L bit. The insertion provides 16 extra bits of length; the flipped bit keeps the universal/local meaning consistent in the 64-bit form, which is why the result is called modified EUI-64.

The result is commonly used as the interface identifier of an IPv6 link-local address, which always sits in fe80::/10 and always requires a zone index such as a scope id when you connect to it. Privacy extensions replace this identifier with a random one for global addresses, but the derived form still appears in documentation, lab setups, and device inventories.

StepValueExplanation
Start MAC00:1A:2B:3C:4D:5E48-bit EUI-48
Insert FF:FE00:1A:2B:FF:FE:3C:4D:5E64-bit EUI-64
Flip U/L bit02:1A:2B:FF:FE:3C:4D:5EFirst octet 00 becomes 02
Format as IPv6fe80::21a:2bff:fe3c:4d5eLink-local with that interface id

Textual formats and how to parse them

The same 48 bits appear in at least four notations. Unix and Windows use colon-separated pairs. Windows sometimes uses hyphens. Cisco uses three groups of four hex digits separated by dots. Some tools emit uppercase, some lowercase, and some strip separators entirely. A parser should normalize all of them and reject anything that is not exactly 48 bits.

Normalization matters for comparison but not for storage of the original. Lowercase colon notation is the most portable canonical form. If you accept a bare 12-digit hex string, be explicit about it, because accepting it silently lets a user paste a 16-hex-digit identifier that is not a MAC address at all.

StyleExampleCommon source
Colon00:1a:2b:3c:4d:5eLinux, macOS, most APIs
Hyphen00-1a-2b-3c-4d-5eWindows, some network gear
Cisco dotted001a.2b3c.4d5eIOS and related CLIs
Bare hex001a2b3c4d5eLogs and CSVs, ambiguous
Uppercase00:1A:2B:3C:4D:5EDocumentation, labels

Errors a lookup should report

A good lookup distinguishes "this is malformed" from "this is locally administered" from "this prefix is valid but the assignee is not in the local registry". Collapsing all three into "unknown" wastes the caller's time, because the fixes are completely different.

Length errors are the most common: five octets, seven octets, or a 64-bit EUI-64 pasted into a 48-bit field. Character errors come next, usually an O for a zero or an I for a one from OCR. Then there are the logical cases: multicast addresses, the broadcast address, and locally administered prefixes, each of which is syntactically valid and semantically special.

SymptomCauseCorrect handling
Five octetsTruncated pasteReject with a length error
Contains O or IOCR or manual typoReject as invalid hex
U/L bit setRandomized or local assignmentSkip the registry
I/G bit setGroup addressNot a device address
FF:FF:FF:FF:FF:FFBroadcastReject as an interface address
16 hex digitsEUI-64 suppliedReject or convert explicitly

Generating MAC fixtures that cannot collide

For test data, always generate locally administered unicast addresses: set the first octet to 02 and keep the I/G bit clear. That combination is guaranteed not to belong to any vendor, so a fixture can never be mistaken for a real device, and a lookup tool will correctly say the prefix is local rather than invent a manufacturer.

The site's MAC tools operate on the 48-bit structure and do not claim to identify real hardware. They parse the bits, show the OUI as bits rather than as a vendor guarantee, and can derive an EUI-64 form. Note that the site does not generate Bluetooth device addresses or other 48-bit identifiers outside the Ethernet-style MAC tools, and it does not generate serial numbers at all.

  • Use 02 as the first octet for synthetic unicast addresses
  • Never generate a real vendor OUI plus a random NIC portion
  • Keep fixtures in a documented prefix so they are searchable
  • Do not use MAC addresses as stable device identifiers in tests either

Questions

How many bits are in a MAC address?+
Forty-eight bits, six octets, usually written as six hexadecimal pairs. EUI-64 extends the same scheme to 64 bits by inserting FF:FE and flipping the U/L bit.
What does the second character of the first octet tell me?+
Its low bit is the I/G bit, so an even second character means unicast and an odd one means multicast. The next bit up is the U/L bit, which is why 02 indicates a locally administered address.
Why does a vendor lookup return nothing for my device?+
The address is probably randomized. Modern operating systems set the U/L bit for private Wi-Fi addresses, and no vendor is assigned to a local prefix.
Is a MAC address a reliable device identifier?+
No. It is set in software on most platforms, rotates by network on phones and laptops, and is trivial to spoof. Do not key licences or analytics on it.
Can the tool tell me if a MAC address is real?+
No. It parses structure and bits, and a registry lookup can only reflect prefix assignments, not whether a device exists. The site does not verify hardware.

Examples are synthetic. Do not use a generated address for identity checks, account registration, or delivery.

Reference standards

Read next

All guides