Guide
Expanding CIDR blocks into first and last addresses
A cloud provider publishes its address ranges as CIDR blocks. Your tool, spreadsheet or old firewall wants a start and an end. The page converts a list of blocks into the first and last address of each, with the size, and can list the individual addresses of a small block when you need them.
How a prefix defines a range
The prefix length says how many leading bits are fixed. The remaining bits can take every value. The first address sets all of them to zero and the last sets them all to one. A /28 fixes 28 bits and leaves 4, so there are 2⁴ = 16 addresses; 10.0.0.0/22 leaves 10 bits for 1,024 addresses, running from 10.0.0.0 to 10.0.3.255. The block is always aligned: the first address is a multiple of the block size. A line that is not a CIDR block produces an error message with an example instead of a row.
What the table shows
Each input line becomes a row with the CIDR as you wrote it, the first address, the last address and the number of addresses, written with thousands separators. IPv6 blocks are handled the same way with 128-bit arithmetic, so 2001:db8:1::/120 gives 256 addresses ending in 2001:db8:1::ff. Use Copy as TSV to move the table to a spreadsheet. The option “List every address” turns each block into individual lines, up to the first 4,096 of that block.
Usable hosts versus addresses
A range is not the same as a list of hosts. In an ordinary IPv4 subnet the first address is the network address and the last is the broadcast address, and neither is assigned to a host, so a /28 offers 14 hosts out of 16 addresses. A /31 on a point-to-point link uses both, and a /32 is one host. IPv6 has no broadcast, but the first address of a subnet (the subnet-router anycast address) is reserved by convention. When you need host counts and masks too, use the Subnet Calculator.
A worked example
The sample list has four blocks. 192.168.10.0/28 runs from 192.168.10.0 to 192.168.10.15, 16 addresses. 10.0.0.0/22 runs from 10.0.0.0 to 10.0.3.255, 1,024 addresses. 203.0.113.0/30 runs from 203.0.113.0 to 203.0.113.3, 4 addresses. The IPv6 block 2001:db8:1::/120 runs from 2001:db8:1:: to 2001:db8:1::ff, 256 addresses. Switching on the listing option shows all 16 addresses of the first block, one per line.
Limits
Only the arithmetic is done. The page does not know whether a block is allocated, public or routable, and it does not remove overlaps between lines. The listing option is capped at 4,096 addresses per block to keep the page responsive; the first and last addresses and the count remain exact whatever the size. To go from a start and an end to blocks, use IP Range to CIDR.
Typical sources of CIDR lists
Blocks usually arrive in bulk. Cloud providers publish their address ranges as downloadable lists, for example the IP range files of Amazon Web Services and Google Cloud, and Cloudflare publishes the ranges of its edge network as plain text. Partners send allow lists, and registries publish allocations. Many older firewalls, spreadsheets and log tools cannot read CIDR notation and want a start and an end. Paste the list here, copy the table as tab-separated values, and sort the first-address column to spot overlaps.
Related tools
- IP Range to CIDR converts a start and end into the smallest block list.
- Subnet Calculator adds masks, broadcast and usable hosts.
- Broadcast Address Calculator does the batch calculation for host addresses.
- Private IP Checker classifies the addresses you have listed.
Checked against the current version of the CIDR to IP Range on .

