BYTETOOLS

CIDR Overlap Checker

Paste a list of IPv4 or IPv6 CIDR blocks and instantly see which ones overlap, which contain another, which are duplicates and where the gaps are.

6
Blocks checked
2
Overlapping pairs
0
Exact duplicates
2
Gaps found

Overlaps found

Block ABlock BRelationshipShared range
10.0.0.0/810.1.2.0/24first fully contains second10.1.2.010.1.2.255
192.168.0.0/16192.168.10.0/24first fully contains second192.168.10.0192.168.10.255

Normalised blocks

As enteredNetworkFamilyRange
10.0.0.0/810.0.0.0/8IPv410.0.0.010.255.255.255
10.1.2.0/2410.1.2.0/24IPv410.1.2.010.1.2.255
172.16.0.0/12172.16.0.0/12IPv4172.16.0.0172.31.255.255
192.168.0.0/16192.168.0.0/16IPv4192.168.0.0192.168.255.255
192.168.10.0/24192.168.10.0/24IPv4192.168.10.0192.168.10.255
2001:db8::/322001:db8::/32IPv62001:db8::2001:db8:ffff:ffff:ffff:ffff:ffff:ffff

Unallocated gaps between blocks

FamilyFromToAddresses
IPv411.0.0.0172.15.255.2552,702,180,352
IPv4172.32.0.0192.167.255.255344,457,216

What is the CIDR Overlap Checker?

The CIDR Overlap Checker compares every pair of blocks in a list and tells you which ones collide. Each block is converted into a numeric start and end address — 32-bit integers for IPv4 and BigInt for IPv6 — so containment, partial overlap and exact duplicates are detected exactly rather than by string matching.

  • Pairwise comparison of up to 250 blocks, IPv4 and IPv6 together
  • Distinguishes exact duplicates, full containment and partial overlap
  • Shows the precise shared address range for every colliding pair
  • Normalises each entry to its true network address so typos stand out
  • Lists the unallocated gaps between adjacent blocks
  • 100% client-side — no block list is ever transmitted

How to use the CIDR Overlap Checker

  1. 1

    Paste your CIDR blocks into the text area, one per line — IPv4 and IPv6 can be mixed.

  2. 2

    Add comments after a # if you want to label lines; they are ignored by the parser.

  3. 3

    Read the overlap table: it names each colliding pair, the relationship and the exact shared address range.

  4. 4

    Check the normalised block list to confirm each entry was read the way you meant it.

  5. 5

    Copy the report with the copy button to paste into a change ticket.

About the CIDR Overlap Checker

The CIDR Overlap Checker compares every pair of blocks in a list and tells you which ones collide. Each block is converted into a numeric start and end address — 32-bit integers for IPv4 and BigInt for IPv6 — so containment, partial overlap and exact duplicates are detected exactly rather than by string matching.

Run it before you push a route table, a firewall object group, a VPC peering plan or a set of NAT exclusions. Overlapping prefixes are one of the classic causes of traffic disappearing into the wrong tunnel, and they are almost impossible to spot by eye in a list of thirty blocks.

The tool also lists the unallocated gaps between adjacent blocks, so you can see where there is still room to allocate. Everything runs 100% locally in your browser — your addressing plan is never uploaded.

Frequently asked questions

How do I know if two CIDR blocks overlap?

Convert both to a numeric first and last address; they overlap when each block's start is less than or equal to the other's end. For example 10.0.0.0/8 spans 10.0.0.0 to 10.255.255.255, so 10.1.2.0/24 sits entirely inside it. This tool does that comparison for every pair at once.

Is it a problem if one subnet contains another?

It depends on the context. In a routing table a more specific prefix inside a less specific one is normal and useful. In a DHCP scope list, a firewall object group or a cloud VPC CIDR set it is usually a mistake that causes traffic to match the wrong rule.

Can I check IPv6 prefixes for overlaps too?

Yes. IPv6 blocks are compared using 128-bit BigInt arithmetic, so a /32 and a /48 inside it are detected correctly. IPv4 and IPv6 entries are compared only against blocks of the same family, since the two address spaces cannot overlap.

What does the gap list tell me?

It shows the address ranges that fall between your blocks but are not covered by any of them. That is where you still have room to allocate, and it is a quick way to spot that you meant to cover a contiguous range but left a hole in it.

Does it matter if I write 10.1.2.3/24 instead of 10.1.2.0/24?

Not for the comparison — the tool masks each entry down to its true network address first, and the normalised block table shows you what it used. If your input and the normalised form differ, that is worth a second look before you commit the config.

Related tools