MAC Address Generator
Generate local MAC address batches with prefixes, bit policies, format views, uniqueness checks, seeded replay, lead-byte anatomy, and batch audit exports.| # | MAC address | Plain hex | OUI / prefix | NIC suffix | Flags | Copy |
|---|---|---|---|---|---|---|
| {{ row.index }} | {{ row.address }} | {{ row.plain }} | {{ row.oui }} | {{ row.nic }} | {{ row.flagLabel }} |
| Part | Value | Binary | Meaning | Copy |
|---|---|---|---|---|
| {{ row.part }} | {{ row.value }} | {{ row.binary }} | {{ row.meaning }} |
| Format | Value | Typical use | Copy |
|---|---|---|---|
| {{ row.format }} | {{ row.value }} | {{ row.use }} |
| Check | Value | Meaning | Copy |
|---|---|---|---|
| {{ row.check }} | {{ row.value }} | {{ row.meaning }} |
{{ formattedJson }}
Introduction:
A MAC address is a link-layer identifier, most often written as six hexadecimal octets for Ethernet and Wi-Fi interfaces. It appears in switch tables, DHCP leases, virtual machine settings, packet captures, lab fixtures, and documentation examples, so generated values need to respect the small set of bits that give a MAC address its meaning.
Random-looking MAC addresses are not all equivalent. The first octet tells receivers whether the address is for one interface or a group, and whether the address belongs to globally administered space or local space. A safe lab value for a virtual machine is usually a locally administered unicast address. A multicast-looking value is useful for protocol examples, but it is not suitable as a normal source address for one interface.
Generated MAC addresses are best used for tests, demos, fixtures, simulations, and local lab setups where the administrator controls the collision risk. They should not be presented as assigned hardware identities, proof of a vendor, or a privacy guarantee. A generated value can match the shape of a real address while still being synthetic.
The important questions are practical: does the address fit the system's accepted notation, does its first octet carry the intended flags, and is the generated batch large enough without creating duplicates? Those checks matter more than the cosmetic separator style.
How to Use This Tool:
Start with the address role, then choose the prefix and output shape that the receiving system expects.
- Choose a Preset. Local VM batch is the safest general fixture because it uses locally administered unicast settings. The Docker-style and vendor-looking presets are useful when a lab, example, or parser test needs a familiar prefix shape.
- Enter a Prefix / OUI only when the first bytes need to be fixed. The field accepts whole-byte hexadecimal input such as
02,02:42, or00:50:56, with colons, hyphens, dots, or spaces allowed as separators. Leave it blank when all address bytes should be generated from the selected policy. - Set Type and administration bits. Use locally administered unicast for ordinary dummy data, virtual interfaces, and QA lists. Use universal or multicast choices only when the example specifically needs that class of address.
- Open Advanced when the first octet must be handled carefully. Enforce selected type/admin bits can adjust the first byte of a supplied prefix. Preserve first-octet prefix bits keeps the prefix exact, so read the resulting Flags field to confirm what the address actually means.
- Choose Display format, Letter case, Quantity, and Unique within batch. The same 48-bit address can be shown with colons, hyphens, Cisco dot notation, or plain hexadecimal text.
- Add a Deterministic seed only when the same fixture batch must be recreated later. Leave it blank for a fresh random batch from the browser's random source.
- Use Generate MAC, then read Generated MACs, Lead Anatomy, and Format Matrix. If a validation message appears, fix the prefix length, invalid hexadecimal characters, or unique-batch capacity before using the output.
Interpreting Results:
Read the Flags field first. It says whether the generated row is unicast or multicast, and whether it is locally or universally administered. The OUI / prefix column is the first 24 bits of the generated address; for locally administered or synthetic values, that field is a structural prefix, not proof of an IEEE assignment.
The Lead Anatomy tab is the best place to audit the first row. I/G bit distinguishes individual unicast addresses from group addresses. U/L bit distinguishes local address space from universal address space. Policy reports whether the first octet already matched the selected bit policy or had to be adjusted.
| Result Pattern | Useful For | Do Not Treat It As |
|---|---|---|
| Unicast; local | Dummy device rows, VM fixtures, privacy examples, and lab-only interface values. | A globally unique hardware address unless your local assignment plan prevents conflicts. |
| Unicast; universal with a vendor-looking prefix | Documentation, parser tests, and examples that need a familiar OUI-style shape. | Evidence that the address was assigned by that vendor or exists on real hardware. |
| Multicast | Protocol examples and group-address tests. | A normal source address for one interface. |
| Warning about an adjusted first octet | A signal that the chosen policy changed one or both flag bits in the supplied prefix. | Proof that the original prefix was invalid; it may simply have carried different flag bits. |
A generated batch can look realistic without being authoritative. Before using values in a real network, compare the batch against your existing switch, DHCP, Wi-Fi controller, or virtualization inventory and keep the same prefix policy across related systems.
Technical Details:
A 48-bit MAC address is commonly represented as six octets. The two least significant bits of the first octet carry special meaning. The I/G bit, also called the M bit in some standards language, marks individual versus group addressing. The U/L bit, also called the X bit, marks universal versus local administration. The remaining bits are interpreted differently depending on whether the address is in universal or local space.
Universal addresses are normally governed by an assigned prefix owner. Local addresses are not globally unique by themselves, so the administrator or local assignment method is responsible for avoiding conflicts in the span where the address is used. The Structured Local Address Plan, or SLAP, further divides local unicast space into quadrants such as AAI, ELI, reserved, and SAI; the lead anatomy output names that quadrant when the first row is locally administered.
Rule Core:
| First-Octet Field | Value 0 | Value 1 | How It Affects Generated Rows |
|---|---|---|---|
| I/G bit | Individual, usually unicast | Group, multicast or broadcast | Controls the unicast or multicast part of the Flags value. |
| U/L bit | Universally administered | Locally administered | Controls the local or universal part of the Flags value. |
| Y and Z bits | Only interpreted as SLAP quadrant bits when U/L is 1 | Feeds the Lead Anatomy local quadrant label. | |
Transformation Core:
The generation path keeps fixed prefix bytes, fills the remaining octets, applies first-octet rules when requested, and then formats the same byte sequence in several notations.
| Step | Rule | Result Surface |
|---|---|---|
| Prefix normalization | Separators and spaces are removed, input must be hexadecimal, and the prefix must end on a full byte. | Prefix / OUI help text and validation messages. |
| Byte generation | Missing octets are filled until the address has six bytes. A blank seed uses fresh browser randomness when available; a seed recreates the same sequence for the same settings. | Generated MACs rows. |
| First-octet policy | Selected I/G and U/L bits are enforced unless prefix preservation is selected. Random flags may vary those two bits. | Flags, I/G bit, U/L bit, and adjustment warnings. |
| Duplicate control | When uniqueness is enabled, duplicate 48-bit values are rejected during the current batch. If the available space is too small, generation stops with a warning or validation message. | Unique batch badge and warning text. |
| Formatting | Colon, hyphen, Cisco dot, and plain hex views are different renderings of the same six bytes. | MAC address, Plain hex, and Format Matrix. |
The unique-batch check depends on the amount of random space left after fixed prefix bytes and fixed policy bits. A fully fixed six-byte prefix leaves only one possible address. A short local-unicast prefix leaves a much larger suffix space, but uniqueness is still checked only within the current generated batch.
Seeded generation is deterministic, not more secure. It is useful for repeatable QA evidence, screenshots, fixture files, and examples where the same rows must appear again. For unpredictable dummy values, leave the seed blank and regenerate a fresh batch when needed.
| U/L | Y | Z | Lead Anatomy Label | Plain Meaning |
|---|---|---|---|---|
| 0 | any | any | Universal space | The local quadrant labels do not apply. |
| 1 | 0 | 0 | AAI local quadrant | Administratively assigned local space. |
| 1 | 0 | 1 | ELI local quadrant | Extended local identifier space. |
| 1 | 1 | 0 | Reserved local quadrant | Reserved local space. |
| 1 | 1 | 1 | SAI local quadrant | Standard assigned identifier space. |
For real network use, local uniqueness is the administrator's job. Generated addresses can support fixtures and controlled assignments, but they cannot prove that another bridge domain, hypervisor, or Wi-Fi system will not already use the same 48-bit value.
Privacy Notes:
The address batch is generated in the browser and does not require a vendor lookup or server-side address check. That is useful when sample data should stay local, but the generated strings are still network identifiers and should be handled carefully.
- Do not paste real production MAC addresses into shared notes or examples unless those identifiers are meant to be disclosed.
- Treat a deterministic seed as a repeat label, not a secret. Anyone using the same seed and settings can recreate the same batch.
- Do not use generated MAC values to bypass access controls, impersonate devices, or claim vendor ownership.
Worked Examples:
Repeatable Docker-style fixture
Set Prefix / OUI to 02:42, choose Locally administered unicast, use lowercase colon format, set Quantity to 3, and enter the seed qa-lab-2026. The first generated MAC address is 02:42:84:88:70:63, with Plain hex 024284887063, OUI / prefix 02:42:84, NIC suffix 88:70:63, and Flags Unicast; local. The result is suitable for a repeatable lab fixture, not a vendor assignment.
Vendor-looking documentation row
Set Prefix / OUI to 00:50:56, choose Universally administered unicast, preserve the first octet, use uppercase hyphen format, and enter the seed vmware-doc. One generated row is 00-50-56-F2-51-17. The Flags field reads Unicast; universal, and Lead Anatomy reports Universal space. That makes a clear documentation example, but it still does not prove an IEEE assignment for the generated suffix.
Prefix flag adjustment
Set Prefix / OUI to 33:33, choose Universally administered multicast, keep first-octet enforcement on, use Cisco dot format, and enter the seed ipv6-multicast-demo. The first row can become 3133.5642.94fb because the selected policy clears the U/L bit in the supplied first octet. The warning about an adjusted first octet is the cue to decide whether policy enforcement or exact prefix preservation matters more for the example.
Validation recovery
If Prefix / OUI is 024, generation stops because the prefix does not end on a full byte. Change it to 02:40, 02:42, or another even-length hexadecimal prefix. If a full six-byte prefix is paired with Quantity greater than 1 and Unique within batch is on, reduce the quantity or loosen the prefix because only one unique value remains.
FAQ:
What is the safest default for dummy MAC addresses?
Use Local VM batch or choose Locally administered unicast. That sets the local bit and keeps the address in individual unicast form, which is the normal shape for lab-only interface fixtures.
Can I generate a real vendor MAC address?
No. A vendor-looking prefix can make an example resemble a known address family, but a generated suffix is not an assigned hardware identity and does not prove that the vendor issued the full address.
Why did the prefix change after generation?
Enforce selected type/admin bits can change the first octet so it matches the selected I/G and U/L policy. Use Preserve first-octet prefix bits when the exact first byte matters, then verify the resulting Flags field.
What prefix formats are accepted?
Use hexadecimal bytes with optional colons, hyphens, dots, or spaces. The prefix can be blank or up to 12 hex digits, but it must contain only full bytes such as 02, 02:42, or 00:50:56.
Does a deterministic seed make the addresses private?
No. A seed makes the batch repeatable. It is useful for fixtures and documentation, but it should not be treated as a secret or as a privacy feature.
Why does the unique-batch warning appear?
The fixed prefix and selected policy can leave fewer possible addresses than the requested Quantity. Reduce the quantity, shorten the prefix, turn off uniqueness when duplicates are acceptable, or choose a policy that leaves enough generated bytes.
Glossary:
- MAC address
- A link-layer identifier commonly written as six hexadecimal octets for Ethernet and Wi-Fi.
- EUI-48
- The 48-bit identifier format commonly used as a MAC address.
- OUI
- An organizationally unique identifier, often used as the first 24-bit prefix in universal address examples.
- I/G bit
- The first-octet bit that distinguishes individual unicast addresses from group addresses.
- U/L bit
- The first-octet bit that distinguishes universal administration from local administration.
- Locally administered address
- An address whose uniqueness is managed in the local span of use rather than by a global prefix owner.
- SLAP
- The Structured Local Address Plan that divides local MAC address space into named quadrants.
References:
- Guidelines for Use of Extended Unique Identifier (EUI), Organizationally Unique Identifier (OUI), and Company ID (CID), IEEE Registration Authority, April 1, 2022.
- RFC 9542: IANA Considerations and IETF Protocol and Documentation Usage for IEEE 802 Parameters, IETF, April 2024.
- RFC 8948: Structured Local Address Plan (SLAP) Quadrant Selection Option for DHCPv6, IETF, December 2020.
- LPN-4: Mobile Device MAC Address Tracking, NIST Mobile Threat Catalogue.
- MAC randomization behavior, Android Open Source Project.
- Wi-Fi privacy with Apple devices, Apple, December 19, 2024.