IP Overlap Checker
Check IPv4 CIDRs and ranges for exact duplicates, containment, partial overlap, host-bit corrections, and duplicate address coverage.| {{ header }} | Copy |
|---|---|
| {{ cell }} |
| {{ header }} | Copy |
|---|---|
| {{ cell }} |
| {{ header }} | Copy |
|---|---|
| {{ cell }} |
Address plans often look separate on a diagram while still claiming some of the same IPv4 space. A cloud VPC placed inside a corporate aggregate, a VPN pool copied into two regions, or a partner network that intersects a private range can break routing before any cable or tunnel changes. The usual symptoms are ambiguous routes, failed peering, unexpected network address translation, and hosts that become reachable through the wrong path.
Classless Inter-Domain Routing (CIDR) describes an IPv4 block with an address and a prefix length. The prefix fixes the network bits, while the remaining bits identify every address in the block. A shorter prefix covers more addresses: a /16 contains 65,536 addresses, a /24 contains 256, and a /32 names one address.
| Relationship | Example | Why it matters |
|---|---|---|
| Exact duplicate | 10.20.0.0/24 and 10.20.0.0/24 |
Both entries claim every address in the same block. |
| Containment | 10.20.0.0/16 contains 10.20.8.0/24 |
A broad allocation may hide a deliberate reservation or an accidental reuse. |
| Partial overlap | 192.0.2.0-192.0.2.31 and 192.0.2.16-192.0.2.47 |
Only the shared interval conflicts, which can make the problem easy to miss. |
| Adjacency | 10.20.0.0/24 followed by 10.20.1.0/24 |
The blocks touch but share no address, so they are not an overlap. |
Host bits create another source of confusion. The text 10.20.8.25/24 names an address inside the network whose boundary is 10.20.8.0/24. Normalizing that entry is useful for inventory cleanup; rejecting it is safer when a review must expose every non-canonical CIDR rather than silently correcting it.
An overlap result proves that two declared ranges share addresses. It does not prove that both ranges are routed, active, or assigned to live systems. Labels, groups, routing tables, address-management records, and the intended use of a parent aggregate still decide whether a reported relationship is an error.
How to Use This Tool:
Start with the inventory that will participate in the same routing, peering, migration, or allocation decision.
- Paste IPv4 entries into IP inventory. A header row may identify label, CIDR or range, group, and note columns; plain CIDRs, hosts, dotted masks, wildcard masks, and start-end ranges are also accepted.
- Choose Host-bit handling. Use normalization for cleanup work, or strict rejection when a non-network address such as
10.20.8.25/24must stop the review. - Select Conflict scope. Audit every pair for a full inventory check, or compare different groups when reuse inside one administrative group is intentional.
- Set Minimum shared addresses only when tiny intersections should be filtered out. Enable adjacent-range notes separately; adjacency never becomes an overlap.
- Resolve any Inventory needs attention message, then review the highest-severity conflict and confirm its labels, groups, normalized blocks, shared count, and suggested next action against the real network plan.
Interpreting Results:
Start with the verdict and conflict count, then inspect each pair rather than relying on severity alone. Exact duplicates are always Critical. Containment is Critical across groups and High within one group. Partial overlap is High across groups and Medium within one group.
- Shared addresses is the size of the intersection for that pair, including both endpoints.
- Duplicate address count compares all declared addresses with the merged unique coverage. It measures repeated coverage across the entire inventory, not the sum of pairwise intersections.
- Coverage blocks merge overlapping and adjacent declarations into continuous address intervals. A merged block may therefore contain several labels without every pair overlapping.
- No overlaps means no pair met the selected scope and minimum-shared-address rule. Recheck with all-pairs scope and a minimum of 1 before treating the inventory as globally clear.
Technical Details:
Each IPv4 address is converted to an unsigned 32-bit integer. A CIDR prefix supplies a bit mask, so host bits can be cleared to find the network boundary. Explicit start-end ranges are sorted into ascending order and decomposed into the smallest exact CIDR cover for display.
Formula Core:
For address integer a and prefix length p, the network start is the address masked by the first p bits. The block ends after 232-p addresses.
Two closed ranges overlap when each start is no later than the other range's end. Their shared count includes both boundary addresses.
Declared coverage adds every input range size. Unique coverage merges all intersecting or directly adjacent intervals first. Duplicate coverage is declared coverage minus unique coverage, which avoids double-counting addresses covered by three or more entries.
Rule Core:
| Condition | Relationship | Same group | Different groups |
|---|---|---|---|
| Starts and ends both match | Exact duplicate | Critical | Critical |
| One closed range fully encloses the other | Containment | High | Critical |
| Ranges intersect without full containment | Partial overlap | Medium | High |
| Previous end + 1 equals next start | Adjacent | Optional note, not a conflict | |
The parser accepts up to 600 non-blank rows and 524,288 source characters. Prefix lengths run from /0 through /32; the minimum shared-address filter is an integer from 1 through 4,294,967,296. In strict mode, any CIDR whose address is not its network boundary is rejected. In normalize mode, the boundary is used and the correction is counted.
Usable-address counts subtract the traditional network and broadcast addresses only for CIDR prefixes shorter than /31. A /31, a /32, and an explicit range keep their full address count. Special-use labels cover selected private, shared, loopback, link-local, benchmark, documentation, multicast, and reserved blocks; they are inventory clues, not a complete routing-policy decision.
Privacy Notes:
The inventory is parsed and compared in the browser. Raw labels, ranges, groups, and notes are not placed in the page URL or sent to a lookup service. Review exported artifacts before sharing because they can reveal internal addressing, site names, tenants, and planned connectivity.
Worked Examples:
Parent block reused by another group
Enter Parent,10.0.0.0/24,core and Child,10.0.0.128/25,branch with all-pairs scope. The parent declares 256 addresses and the child declares 128, but their merged coverage contains 256 unique addresses. The result therefore reports one Critical containment conflict, 128 shared addresses, and 128 duplicate addresses. Confirm whether the child is a documented reservation inside the parent; if the groups will peer independently, exclude, translate, or readdress one side.
FAQ:
Does adjacency create a routing conflict?
No. Two ranges are adjacent when one ends immediately before the other begins, so they share zero addresses. The optional note is useful when planning aggregation or future growth.
Can I check IPv6 ranges?
No. The comparison model is limited to the 32-bit IPv4 address space. Use an IPv6-specific planner or overlap check for IPv6 prefixes.
References:
- RFC 4632: Classless Inter-domain Routing, IETF, August 2006.
- RFC 1918: Address Allocation for Private Internets, IETF, February 1996.
- RFC 3021: Using 31-Bit Prefixes on IPv4 Point-to-Point Links, IETF, December 2000.
- IPv4 Special-Purpose Address Space, IANA, updated October 9, 2025.