Free · no sign-up · fully offline
Random MAC Generator
Generate up to 100 protocol-valid MAC addresses in your browser — unicast or multicast, optionally locked to a real vendor OUI such as VMware, VirtualBox or QEMU/KVM. Copy the whole list in one tap, or download it as a .txt for switch ACLs, DHCP reservations, MAC filters and virtual NICs.
Generate your address batch
Everything below runs in this tab — change any control and the list rebuilds instantly.
Values are limited to 1–100 addresses.
A filled dot marks multicast (odd first octet), a hollow dot marks unicast (even first octet). The first octet is emphasised in indigo.
How it works
Three inputs, one pure function, no submit button.
Type a number or use the +/− stepper and the 1 / 10 / 25 / 100 chips. Anything outside 1–100 is clamped and an inline hint explains why.
Unicast clears the I/G bit (bit 0 of octet 1), multicast sets it. The bit is forced on every address in the batch, so an even first octet is always unicast and an odd one always multicast.
Pick a real vendor prefix — or type any three hex octets — and octets 1–3 come straight from that prefix while octets 4–6 stay random. If the prefix's I/G bit conflicts with the requested type, the bit is flipped and the note says so.
One address per line, uppercase, colon-separated. Copy all puts the whole block on the clipboard; Download .txt saves the same bytes for a config file or spreadsheet column.
No registration, no queue, no upload. Randomness comes from crypto.getRandomValues and the page keeps working with the network switched off.
The output is plain text, so it drops into Aruba or Cisco ACLs, Wi-Fi MAC filters, DHCP reservations, Vagrant and Docker mac_address fields or a pytest fixture list.
How MAC addresses work
A MAC address is six octets (48 bits), usually written as 12 uppercase hex digits separated by colons.
The least significant bit of the first octet is the Individual/Group flag: 0 means the address identifies one interface (unicast), 1 means it is a group address (multicast). That is why every unicast MAC starts with an even octet.
The second-least-significant bit marks a universally administered address (0, burned in by the vendor) or a locally administered one (1). Test fixtures often use a locally administered prefix such as 02:… so nothing collides with real hardware.
The first three octets are the Organizationally Unique Identifier the IEEE assigns to a vendor. Prefixes here are hard-coded well-known ones (VMware 00:50:56, VirtualBox 08:00:27, QEMU/KVM 52:54:00, Xen 00:16:3E, Raspberry Pi, Apple) — no OUI service is queried at runtime.
FAQ
Are these real, registered MAC addresses?
No. They are structurally valid 48-bit values that follow the same rules as real hardware addresses, but they are not assigned to you by the IEEE. Use them as fixtures and test data — do not assume a generated address is unclaimed on someone else's production network.
Why did my vendor prefix change in the output?
Every preset vendor OUI starts with an even octet, so it is unicast by definition. If you ask for multicast, the generator flips the I/G bit of the first octet (for example 00:50:56 becomes 01:50:56) so the address stays protocol-valid, and the generation note tells you exactly which octet changed.
Can two addresses in one batch be identical?
No. Each batch is deduplicated in memory, so a 100-address run never repeats itself. Uniqueness is only guaranteed inside the current batch: nothing is stored between visits, so a later session can legitimately produce values you have seen before.
What if my custom prefix is malformed?
The field is validated as three hex octets (02:1A:2B, 02-1A-2B or 021A2B). Anything else shows a format hint and keeps the last valid prefix, or falls back to a fully random prefix until you fix it — a malformed MAC is never emitted.
Does it work without a network connection?
Yes. The whole tool is a single static page: no API calls, no keys, no telemetry. If crypto.getRandomValues is unavailable the generator falls back to Math.random and says so in the note.
Where can I paste the list?
Switch and Wi-Fi ACL filters, DHCP reservations, VM and container NIC definitions, RADIUS allow-lists, load-test fixtures and demo seed data. One address per line also pastes cleanly into a spreadsheet column or a shell loop.
Random MAC address generator — free, offline, no sign-up
This generator builds batches of 1 to 100 syntactically valid MAC addresses, typed as unicast or multicast through the I/G bit, with an optional real vendor OUI locked into the first three octets. The randomness source is crypto.getRandomValues, duplicates are removed within each batch, and the output is uppercase colon-separated hex that pastes directly into switch ACLs, DHCP reservations, MAC filters and virtual NIC configs. Everything runs in your browser, so the page makes no requests after it loads and keeps working fully offline.