Generate random IPv6 addresses in your browser — pick a prefix mode, choose full or RFC 5952 compressed output, optionally derive EUI-64 interface IDs from a MAC address, and batch up to 100 at a time. Free, no sign-up, 100% client-side.
Generate
CSPRNG · crypto.getRandomValues()100% client-side — nothing leaves your browser
Format guide — what each mode produces
Illustrative examples, not fixed output. These were generated once with a fixed seed purely to document the structure each mode produces. Real output is random every single time — the exact addresses below will effectively never repeat.
Prefix mode
Structure
Illustrative example
Fully random
8 groups × 4 hex digits — any of the 2128 addresses
An IPv6 address is 128 bits: eight groups of 16 bits, written as eight hexadecimal groups. This tool draws 128 uniform random bits from your browser's cryptographically secure RNG (crypto.getRandomValues()), then keeps the bits that belong to your chosen prefix and lets the rest stay random. A global-unicast address therefore always starts with a 2 or 3, a ULA always starts with fd, and so on — while every host bit is independently random.
With EUI-64 from MAC enabled, the low 64 bits are instead derived deterministically from the MAC you type: the universal/local bit of the first octet is flipped and FF:FE is inserted in the middle (RFC 4291 §2.5.1), e.g. 00:1A:2B:3C:4D:5E → interface ID 021a:2bff:fe3c:4d5e. Only the subnet bits between your prefix and bit 64 stay random.
Compressed output follows RFC 5952: leading zeros in each group are dropped, the longest run of two or more all-zero groups is replaced with :: exactly once (never for a single zero group), and hex digits are lowercase.
Frequently asked questions
A Unique Local Address (ULA) is IPv6's private-address space: fd00::/8, defined by RFC 4193. Like RFC 1918 space in IPv4, ULAs are for use inside a site or organization and are not expected to be routable on the public internet. RFC 4193 requires the 40-bit global ID (the bits right after "fd") to be pseudo-random so independently generated ULAs are globally unique with overwhelming probability — this generator draws those bits randomly, exactly as the RFC intends. Pick ULA mode for home labs, VPNs, Docker and Kubernetes networks, and any test setup where you want realistic private IPv6 without touching public space. For internet-facing fixtures, use the global unicast (2000::/3) mode instead.
EUI-64 (RFC 4291, section 2.5.1) builds an IPv6 interface identifier deterministically from a 48-bit MAC address: flip the universal/local bit of the first octet, then insert FF:FE in the middle. For example, MAC 00:1A:2B:3C:4D:5E becomes the interface ID 021a:2bff:fe3c:4d5e. The problem is stability: the same device produces the same interface ID on every network it joins, which makes long-term tracking easy. That is why modern operating systems default to privacy extensions (RFC 4941) that use random temporary addresses instead. This tool derives EUI-64 addresses from any MAC you type for testing and documentation — never paste your real device's MAC into addresses you publish or share.
No — and that is precisely the point. The 2001:db8::/32 block is reserved by RFC 3849 for documentation and examples only. It is guaranteed never to be assigned to any real network, so addresses from it can appear in tutorials, slides, support tickets and books without ever colliding with production equipment. Use the documentation mode here whenever you need IPv6 addresses for writing. For realistic-looking but safely unassigned lab addresses, the ULA (fd00::/8) mode is the better choice.
Every address is drawn from crypto.getRandomValues(), the browser's cryptographically secure random number generator — the same primitive password generators and TLS implementations rely on. Generation picks 128 uniform random bits and keeps only the ones outside your chosen prefix, so distribution stays uniform no matter which mode you select. Everything runs 100% client-side in your browser: nothing is uploaded, logged, seeded or stored anywhere. Because there is no seed, output is not reproducible — generate, copy and save anything you need to keep.
A random address is not an assigned address. In fully-random mode there are 2^128 possibilities, so the chance that two generated addresses collide is negligible (you would need on the order of 2^64 draws before a collision becomes likely — the birthday bound). Global-unicast-mode addresses look like real public IPv6 addresses and are overwhelmingly likely to be unassigned, but "overwhelmingly likely" is not a guarantee: never paste random addresses into production router, firewall or DNS configurations. Request a real allocation from your provider or registry for anything that goes live.
Both represent the same 128-bit value. Full form writes all eight groups of four hexadecimal digits, e.g. 2001:0db8:0000:0000:0000:ff00:0042:8329. Compressed form follows RFC 5952: leading zeros in each group are dropped, the longest run of two or more all-zero groups is replaced with "::" exactly once, and hex digits are lowercase — giving 2001:db8::ff00:42:8329. This tool compresses canonically per RFC 5952, so its output matches what standards-compliant software expects.
No. The generator is a single page of JavaScript that runs entirely in your browser — there are no network requests at all. You can safely generate addresses derived from private lab prefixes or MAC addresses from internal configs, because none of that data ever leaves your machine.
Yes — our Random IP Generator at /tools/random-ip-gen/ creates random IPv4 and IPv6 addresses in bulk, with public/private filters and custom subnet ranges. This page stays IPv6-dedicated so it can go deeper: six prefix modes, EUI-64 interface IDs derived from a MAC address, canonical RFC 5952 compression, and up to 100 addresses per batch with copy and download.
We use cookies and third-party services (including Google AdSense) to personalize content, analyze traffic, and serve relevant ads. By clicking "Accept", you consent to our use of cookies as described in our Privacy Policy.
Report an issue
2 taps, no typing needed — diagnostics are sent automatically.