MAC Address Generator
Generate random MAC addresses in colon, hyphen, or Cisco format, with real vendor OUI prefixes (VMware, VirtualBox, Hyper-V) and a locally-administered bit option.
- Free, no account
- No watermark
- No usage limit
About the MAC Address Generator
Most MAC address generators hand you a wall of purely random hex and stop there, this one lets you stamp the leading octets a real platform actually uses onto every address, so the result reads as a VMware, VirtualBox, Hyper-V, QEMU/KVM, Xen, or Parallels interface instead of meaningless noise. Pick a vendor from the list, choose how many you want, and you get a clean batch in your chosen format, generated right in your browser with cryptographic randomness, with nothing uploaded and nothing kept afterwards.
The addresses are fake by design. They follow the correct 48-bit, six-octet shape, so they validate anywhere a real MAC is expected, but they aren't read from any physical card. That is what you want for test data, lab VMs, and documentation: something that looks and validates as real hardware while staying safely disconnected from it.
The error this exists to prevent is a batch of addresses no interface could ever have. Six octets of raw randomness will not do. The lowest bit of the first octet is the individual/group flag, and a random draw sets it half the time. That gives you 33:33:... and 01:00:5E:... rows, which are IPv6 and IPv4 multicast, and one row in 281 trillion is the broadcast address. None of those is something a network card owns, so a DHCP lease table or an inventory seeded with them holds entries that a strict validator rejects and a packet capture reads as traffic rather than hardware. Every address this tool rolls has that bit cleared.
How to use
- When the page loads, a first batch appears automatically so you can see the output shape right away.
- Set How many to anywhere from 1 to 100.
- Choose a Vendor prefix. Leave it on Random for random addresses, pick a virtualization platform or hardware maker to lock the first three octets to the prefix that platform actually uses, or choose Custom prefix to type your own.
- Pick a Format: colon (
AA:BB:CC:DD:EE:FF), hyphen (AA-BB-CC-DD-EE-FF), or Cisco dotted (AABB.CCDD.EEFF). - Toggle Uppercase to match whatever your target system shows. It is cosmetic, the address is the same either way.
- In Random mode, toggle Set locally-administered bit if you want an address guaranteed never to clash with real vendor hardware.
- Click Regenerate for a fresh batch. Use Copy all or Download .txt to grab the whole list, one address per line.
Switching the format or the case reformats the batch you already have, it does not roll new numbers, so you can flip between colon and Cisco style without losing the addresses you liked. The Share button copies a link that carries your exact settings, which is handy for sending a teammate the same setup or bookmarking it for next time.
Vendor prefixes: the part other generators skip
A real MAC address is not just uniform randomness. The first three octets are the OUI, the Organizationally Unique Identifier, a block the IEEE assigns to one specific hardware maker. The last three are the device part the vendor sets per card. So a scanner reading the OUI already knows which company built the card, before it looks at a single other bit.
That distinction matters the moment you seed a lab. A VM inventory full of A2:... and 7E:... addresses looks nothing like a real environment, where a VMware host shows 00:0C:29:... and a VirtualBox guest shows 08:00:27:.... Pick a vendor here and the tool locks those first three octets to the prefix that platform hands its own guests, then randomizes only the device half, so every address is fresh but still reads as belonging to that vendor.
The built-in list uses the prefixes those platforms really ship:
- VMware
00:0C:29, the default VMware Workstation and Player range. - VirtualBox
08:00:27, baked into every VirtualBox network adapter. - Microsoft Hyper-V
00:15:5D, Microsoft's registered Hyper-V block. - QEMU / KVM
52:54:00, the libvirt default for KVM guests. This one is not an IEEE registration and cannot be, which you can read straight off the first octet:0x52is0101 0010, so the locally-administered bit is set, and the IEEE never issues out of that space. QEMU picked the block itself. The dropdown says so beside the value. - Xen
00:16:3E, registered to XenSource. - Parallels
00:1C:42, applied to Parallels Desktop interfaces.
There are hardware presets too, Cisco 00:00:0C, Apple 00:03:93, Intel 00:1B:21, and Raspberry Pi B8:27:EB, for when your mock data needs to look like physical gear rather than a hypervisor. Every one of those is a real IEEE registration rather than a value someone made up, and you can check that claim the same way: each of their first octets has the locally-administered bit clear, which a registered block always does.
Custom OUI prefixes
Need a vendor that is not on the list, or a specific sub-range? Choose Custom prefix and type the leading octets, with or without separators. 00:1C:14, 001C14, and 00-1c-14 all parse the same way. The tool fixes those octets, randomizes the rest, and shows live how many it locked and how many stayed random. You can fix up to five octets to pin most of the address and vary only the last byte, useful when testing a range that belongs to one device family.
Look up any real OUI in the public IEEE registry, paste its first three octets into the custom field, and every generated address carries that prefix.
The locally-administered bit
If you stay in Random mode, one option is worth understanding. The second-lowest bit of the first octet is the locally-administered flag. When it is set, the address declares that a human or a system made it up and it should not be expected in the vendor registry. Turn on Set locally-administered bit and the tool forces the first octet to end in 2, 6, A, or E, which marks the address as locally administered and keeps it unicast. The payoff is a synthetic address that physically cannot land inside any manufacturer's OUI, the same class of address a virtual machine or a phone's randomized Wi-Fi uses to avoid clashing with real hardware.
That option only appears in Random mode. Once you pick a vendor or a custom prefix, that prefix already owns the first octet, so overriding it would break the vendor identity you asked for. The tool disables the flag in that case and tells you why.
The bit next to it, which is not a choice
The locally-administered flag has a neighbor one position down, and that one the tool decides for you. The lowest bit of the first octet is the individual/group flag. Clear, the address names one interface. Set, it names a set of them: 01:00:5E:... is how IPv4 multicast is carried, 33:33:... is the IPv6 equivalent, and all-ones is the broadcast address every device on a segment answers to.
A group address is a destination, so no network card carries one as its own identity, and there is no case where you would want a batch of mock hardware addresses to contain any. The tool clears that bit on every address it rolls, whether or not you turn the locally-administered option on. A prefix you type yourself is left exactly as typed, because that octet is your decision rather than the tool's, so 01:00:5E in the custom box still produces 01:00:5E. Run a batch through the MAC Address Lookup on this site and every row comes back as a unicast address.
Colon, hyphen, and Cisco formats
The 48 bits never change between formats, only the punctuation does. Colon (AA:BB:CC:DD:EE:FF) is the general Linux and Unix convention and the safe default. Hyphen (AA-BB-CC-DD-EE-FF) is what Windows shows in getmac and ipconfig /all. Cisco dotted (AABB.CCDD.EEFF) collapses the six octets into three four-digit blocks, which is how Cisco IOS prints them on a switch or router. Same address underneath, so pick whichever your target reads.
Where random MACs actually get used
- Populate a device-inventory app, a DHCP lease table, or a monitoring dashboard with entries that look real but point at nothing.
- Lab and virtual networks. Assign addresses to VMs, containers, or emulated interfaces, and the vendor prefixes make that inventory look like the platform you are actually simulating.
- Documentation. A networking tutorial or a config sample reads better with a generated address than a real one pulled off your own gear.
- Test suites that parse or validate MAC addresses, fed a batch to confirm your code handles every format and case.
One honest caveat. If what you need is your own machine's real MAC, this tool cannot read it, and it should not be able to, a web page has no business touching your network card. Use ip link or ifconfig on Linux and macOS, or getmac on Windows.
Frequently asked questions
Will a VMware or VirtualBox prefix make the address pass as a real VM?
It carries the same registered OUI a real hypervisor uses, so any tool that identifies vendors by prefix will label it VMware or VirtualBox. The device half is random rather than derived from a VM's UUID or the host's IP the way some platforms compute it, so a deep packet analyzer keyed to those patterns could still tell. For inventory and most test suites, the prefix is what gets checked, and it matches.
Can a generated address collide with a real device?
In Random mode without the locally-administered bit, a random address could theoretically land inside a live vendor's OUI, which is unlikely across a small batch but possible. Switch the locally-administered bit on and collision becomes impossible by design, because that address space is one the IEEE never assigns to manufacturers. A vendor-prefixed address deliberately sits inside a real OUI, so treat those as lab-only and keep them off any production network.
How many octets can I fix with a custom prefix?
Up to five, which always leaves at least one octet random. Type two hex digits to pin just the first octet, six for a full three-octet OUI, or ten to lock most of the address and vary only the final byte. Separators are optional and any non-hex characters get ignored.
Why is the locally-administered option grayed out?
Because you have selected a vendor or a custom prefix. That prefix already sets the first octet, and the locally-administered bit lives in the same octet, so applying it would overwrite the vendor identity. Switch back to Random and the option returns.
Does uppercase or lowercase change the address?
No. AA:BB:CC:DD:EE:FF and aa:bb:cc:dd:ee:ff are identical, because hex is case-insensitive. The toggle only matches how your target system displays things. Windows tends toward uppercase, and many Linux tools show lowercase.
Can I get more than 100 at once?
The on-screen batch caps at 100, which covers interactive work. For seeding ten thousand mock devices you are better off with a short loop in your own code, generating them inline in the pipeline rather than copying from a page.
Is anything I generate sent anywhere?
No. Every address is built in your browser and never leaves your device, not even to us. Refresh the page and the batch is gone, so copy or download what you need before you close the tab.