CIDR IP Expander
Expand an IPv4 CIDR block into every address it contains, ready to paste.
From A Block To A List
Plenty of systems still want addresses one per line: an allow list on an appliance that has never heard of CIDR, a spreadsheet for an audit, a loop in a script, a firewall rule set written by hand. Expanding a block by hand is exactly the kind of task that produces a typo in the middle of it.
This expands any IPv4 block, shows the network and broadcast addresses and the mask, and lets you choose the separator and a prefix for each line so the output can be pasted straight into whatever wants it.
Key features
- Any prefix length — the range and counts are shown even for blocks too large to list.
- Usable hosts or every address — the network and broadcast addresses excluded or included, as you need.
- Knows the exceptions — a /31 has no network or broadcast address, and a /32 is a single host.
- Per-line prefix — so the output can be a list of firewall rules rather than a list of addresses.
- Accepts any address in the block — and tells you the network address it actually starts from.
This tool runs entirely inside your browser using native Web APIs. Your files and text are never uploaded to a server, never logged and never shared with third parties.
How to use: CIDR IP Expander
- Enter a CIDR block
Such as 10.0.0.0/24. Any address inside the block works — it will find the start. - Choose the scope
Usable hosts for an allow list; every address when you need the full range. - Set the separator and prefix
One per line for most uses; commas for a config value. - Copy or download
The list is plain text and ready to paste.
Technical specifications
| Processing location | Entirely in your browser — no server round trip |
|---|---|
| Data uploaded | None. Files and text never leave your device |
| Price | Free — no account, no trial, no usage cap |
| Category | Developer |
| Works offline | Yes, once the page has loaded |
| Browser support | Chrome 90+, Edge 90+, Firefox 90+, Safari 15+ |
| Interface languages | English, 中文, हिन्दी, Español, العربية |
Frequently asked questions
Why will it not expand a /8?
A /8 holds 16,777,216 addresses — roughly 250 MB of text. A browser cannot usefully hold that, and no allow list wants it. Anything above 65,536 addresses shows the range and the counts instead of the list. If you genuinely need to enumerate a /8, you want a script and a file, not a web page.
What is the difference between usable hosts and every address?
On an ordinary subnet the first address identifies the network itself and the last is the broadcast address, so neither can be assigned to a machine. "Usable hosts" leaves them out, which is what an allow list wants. "Every address" includes them, which is what a range check needs.
Why does a /31 behave differently?
Because RFC 3021 made it a special case. A /31 has only two addresses, and reserving both for network and broadcast would leave none — so on a point-to-point link both are usable. A /32 is a single host and has no network or broadcast at all.
Can I enter an address that is not the start of the block?
Yes. Typing 192.168.1.57/24 gives the same result as 192.168.1.0/24, and the tool tells you the block actually starts at .0. That is usually what you want — you rarely know the network address off the top of your head, but you do know an address inside it.
Does it handle IPv6?
No, deliberately. The smallest subnet normally assigned in IPv6 is a /64, which contains eighteen quintillion addresses. Enumerating IPv6 is not a thing anyone does; the useful IPv6 operations are containment and subnetting, not listing.