Skip to content
AgileLogics

Random IP Address Generator

Generates one or more random unicast IPv4 or IPv6 addresses, skipping multicast, loopback and reserved ranges. Addresses are picked at random, so some may belong to real networks.

How it works

Choose a version and how many addresses, then click Generate.

What does a random IP address generator produce?

A random IP address generator builds syntactically valid addresses from random numbers. For IPv4 this tool picks four values from 0 to 255; for IPv6 it picks eight 16-bit groups and writes them in hexadecimal. It leaves out the ranges that can't be an ordinary host's unicast address, such as multicast, loopback and reserved space, so every result looks like something a real interface could carry. Every remaining address is equally likely, and nothing checks whether an address is actually in use.

That makes the output good for filling database columns, testing log parsers, or checking that a form field accepts the right shape. It's a poor choice for anything that will try to contact the addresses.

Generating a batch

  1. Choose IPv4 or IPv6 under IP version.
  2. Move the Addresses slider to how many you want, from 1 to 50.
  3. Click Generate, then Copy. You get one address per line.

A sample run looked like this (yours will differ):

33.218.184.165
160.218.26.241
128.53.80.88

2324:0191:ce13:a0f8:b9e8:e42b:1dce:5b4b
763a:064a:9f50:5d1d:fade:12d9:d47e:924a

Which IPv4 ranges are skipped

The IANA IPv4 Special-Purpose Address Registry, defined by RFC 6890, lists the blocks set aside for special uses, and RFC 5771 covers multicast. Four of those blocks can never be the address of an ordinary host on a network, so the generator never picks them:

Block What it is Why it's skipped
0.0.0.0/8 "This network" Only valid as a source address while a host is starting up
127.0.0.0/8 Loopback Never leaves the machine it's on
224.0.0.0/4 Multicast Identifies a group of receivers, not one host
240.0.0.0/4 Reserved, including 255.255.255.255 broadcast Not usable as a host address

Together those blocks cover about 13.3% of the 32-bit space. The generator picks the first octet only from 1 to 223 (minus 127) and the other three octets freely, so every allowed address keeps the same chance.

Special ranges you can still get

The other registry blocks hold perfectly normal unicast addresses that just aren't routed on the public internet, and they're useful test cases, so they stay in. Your odds per address:

Block What it is Odds per address
10.0.0.0/8 Private (RFC 1918) 1 in 222
100.64.0.0/10 Shared space for carrier-grade NAT 1 in 888
172.16.0.0/12 Private (RFC 1918) 1 in 3,552
198.18.0.0/15 Benchmarking 1 in 28,416
169.254.0.0/16 Link-local 1 in 56,832
192.168.0.0/16 Private (RFC 1918) 1 in 56,832

Add them up and about 0.6% of output, roughly one address in 167, is private, shared or otherwise special-purpose. If your code rejects private addresses, expect it to bounce the occasional generated value, and treat that as a useful test rather than a bug in the data.

The rest may well belong to someone. A random address can be a live web server, a home router or a corporate gateway, so don't ping, scan or connect to generated addresses.

Safer addresses for documentation

When an address will appear in documentation, screenshots or sample configs, use the ranges set aside for exactly that. RFC 5737 reserves three IPv4 blocks, 192.0.2.0/24, 198.51.100.0/24 and 203.0.113.0/24, and RFC 3849 reserves 2001:db8::/32 for IPv6. They are never routed on the public internet, so a reader who copies one can't hit a real machine. You can still use this generator for the host part: take the last octet of a random IPv4 result and drop it into 192.0.2.x.

IPv6 output format

IPv6 results are fully expanded: eight groups, four lowercase hex digits each, separated by colons, with leading zeros kept (0191) and no :: shorthand. That is a valid text form under RFC 4291, but RFC 5952 recommends a canonical form that drops leading zeros and compresses the longest run of zero groups. If your application stores or compares addresses as text, normalise first, for example with the compressed attribute in Python's ipaddress module.

The generator never produces multicast addresses (anything starting ff, the ff00::/8 block in RFC 4291), the unspecified address :: or the loopback ::1. Everything else is fair game. Most of the IPv6 space is still unallocated: in the IANA IPv6 address space registry, global unicast addresses come from 2000::/3, so only about 1 in 8 results starts with a 2 or 3. Others land in unique local space (fc00::/7, about 1 in 128) or link-local space (fe80::/10, about 1 in 1,020).

Related tools

Need hardware addresses for the same test network? The MAC address generator creates random unicast, locally administered addresses. To check what a real address resolves to, the IP to hostname lookup runs a reverse DNS query, and the hostname to IP lookup goes the other way. If you're writing a validation pattern, paste a batch of generated addresses into the regex tester and confirm every line matches.

Last updated

Frequently asked questions

Are the generated IP addresses real?
They are valid unicast addresses picked at random. The tool skips ranges that can never belong to an ordinary host, such as multicast and loopback, but it doesn't check whether an address is assigned, reachable or in use, so many outputs will belong to real networks. Use them as test strings, and never scan or send traffic to them.
Which addresses does it never produce?
For IPv4, nothing starting with 0 (this network), 127 (loopback), or 224 to 255 (multicast, the reserved 240.0.0.0/4 block and the 255.255.255.255 broadcast address). For IPv6, nothing starting with ff (the multicast block), and never the all-zero unspecified address or the loopback address, which is all zeros except a final 1.
Can it generate only private IP addresses?
No, there's no range option. Roughly 1 in 208 IPv4 outputs falls in a private RFC 1918 block. If you need addresses guaranteed to be safe in examples and docs, use the RFC 5737 documentation blocks 192.0.2.0/24, 198.51.100.0/24 and 203.0.113.0/24, or 2001:db8::/32 for IPv6.
Why do IPv6 results keep leading zeros and never use a double colon?
The generator writes every address in full, eight groups of four lowercase hex digits. That is valid IPv6 text, but it isn't the shortened canonical form RFC 5952 recommends, so normalise addresses before comparing them as strings.
How random are the addresses?
Each octet or 16-bit group comes from crypto.getRandomValues, the browser's cryptographically secure random source, and every address outside the skipped ranges is equally likely. Generation happens in your browser and nothing is sent to a server.