MAC Address Generator

Generate random MAC addresses in bulk — pick the separator, the case, a fixed 1–5 octet prefix, and the unicast and locally-administered bits. Free, no upload.

These set the two low bits of the first octet. Locally administered unicast is the safe default for test and lab addresses.

🔒 Addresses are drawn from your browser’s cryptographic RNG (WebCrypto) — nothing is generated on or sent to a server.

Generate MAC addresses in bulk

A MAC address is the 48-bit hardware identifier carried by every network interface — a Wi-Fi or Ethernet card, a virtual NIC, a Bluetooth radio, an IoT board. This tool mints as many random, well-formed addresses as you need in one click, formatted exactly the way your target expects: colon-separated (aa:bb:cc:dd:ee:ff), hyphenated, the Cisco three-group dotted form (aabb.ccdd.eeff), or bare hex with no separators, in lower or upper case. Pin the leading octets to a prefix — anything from one to five of them — when you need addresses that appear to come from a particular vendor block, or pin four or five to walk a range inside a single switch port; leave it blank to randomize all six octets. It is handy for seeding test fixtures, DHCP reservations, virtual-machine and container NICs, load-testing a switch's MAC table, or filling in a lab network diagram.

The right bits, and full privacy

The two low bits of the first octet are flags, and this generator sets them for you — unless a prefix of yours pins that first octet, in which case your prefix wins and every address starts exactly as you typed it. The I/G bit chooses unicast (a single interface) versus multicast; the U/L bit chooses a locally administered address versus a universally administered one tied to a real IEEE OUI. Generating locally administered unicast addresses — the default — is the safe choice for anything you invent, because those ranges are reserved for local use and can never collide with a shipped device. Every address is drawn from your browser's cryptographic random number generator (WebCrypto) and rendered on your device; nothing is generated on a server and nothing you enter, including an OUI prefix, is uploaded, so the tool also works offline.

Frequently asked questions

Which separator format should I pick?

It depends on where the address is going. Colon-separated lower case (aa:bb:cc:dd:ee:ff) is the Linux/Unix and general convention; hyphenated upper case (AA-BB-CC-DD-EE-FF) is common on Windows; the three-group dotted form (aabb.ccdd.eeff) is what Cisco IOS uses; and bare hex with no separator suits config files or code. You can switch format and regenerate at any time.

What do the unicast and locally administered options do?

They control the two flag bits in the first octet, unless a prefix you typed pins that octet — then the prefix wins and the boxes are not applied to it. Unicast (I/G = 0) marks the address as belonging to one interface rather than a multicast group. Locally administered (U/L = 1) marks it as one you assigned yourself rather than a factory address tied to a vendor OUI. Leaving both on gives you locally administered unicast addresses, which are safe to use freely because they cannot clash with real hardware.

How random are the addresses, and are they uploaded?

Each address uses your browser's cryptographically secure random number generator (WebCrypto getRandomValues), not a predictable Math.random sequence, so the results are suitable for test data. Everything runs locally in JavaScript — no address is created on a server, and nothing you type, including an OUI prefix, ever leaves your device.