IPv4 Address Pair Common Prefix
Find the exact common leading-bit prefix of two IPv4 addresses; identical addresses yield a /32 ancestor.
Description
Find the exact common leading-bit prefix of two IPv4 addresses; identical addresses yield a /32 ancestor.
The smallest common prefix of two IPv4 addresses covers both and may also cover many other addresses.
When to use this tool
Find the exact common leading-bit prefix of two IPv4 addresses; identical addresses yield a /32 ancestor.
- Prepare the supplied left, right fields for this operation.
- Compare the complete example with the representation used by your own input before carrying the result into another step.
How to use the tool and how it works
- Enter left, right. Use the exact text syntax, units and index conventions explained below.
- Run the tool. If input validation fails, correct the supplied fields before interpreting any result.
- Read result.prefix, result.address. Interpret false, null and empty lists using the distinctions below; they can be valid outputs.
XOR the parsed addresses to count their common leading bits. Normalize the left address at that length and return address plus prefix.1
| Input field | Meaning and representation | Accepted input |
|---|---|---|
| left | Address text for the family named by this tool. Prefix lengths are separate fields where shown. | Text; at most 8,192 UTF-16 code units, subject to the grammar above |
| right | Address text for the family named by this tool. Prefix lengths are separate fields where shown. | Text; at most 8,192 UTF-16 code units, subject to the grammar above |
| Output field | Interpretation |
|---|---|
| result | Object containing the named outputs below. |
| result.prefix | The prefix value under the stated formula or text convention. |
| result.address | The address value under the stated formula or text convention. |
{
"input": {
"left": "10.0.0.1",
"right": "10.0.0.3"
},
"output": {
"result": {
"prefix": 30,
"address": "10.0.0.0"
}
}
} Limitations and assumptions
- The result is a containing block, not a statement that intervening addresses are assigned or routable.
- IPv4 input uses strict dotted-decimal octets without leading zeros or surrounding whitespace. IPv6 accepts its supported compressed or full spellings and trims surrounding whitespace, but rejects zone identifiers; embedded dotted IPv4 uses the strict IPv4 spelling. IPv6 address outputs are fully expanded unless stated otherwise.
- All declared input fields are required and unexpected top-level fields are rejected. Numbers must be finite; lists are limited to 128 entries and ordinary text fields to 8,192 UTF-16 code units, with tighter limits where stated.
- JSON text inputs must parse within bounded nesting and size limits. Numeric outputs outside the safe finite range are rejected; large exact integer results use decimal strings. Indexes and half-open spans are zero-based unless a rank is explicitly described as one-based.
Alternative or Complementary methods
Use address-set arithmetic for prefix planning and a routing or interface inspection for deployed configuration. Membership and overlap do not establish reachability, ownership or route preference.
References
Similar or alternative tools
- IPv4 Prefix Pair Common Ancestor
Return the smallest IPv4 prefix containing two complete normalized prefixes; it may include additional addresses beyond their union.
- IPv4 Address Prefix Offset
Return an address’s exact zero-based prefix offset only when it belongs to an explicitly normalized IPv4 network; outside offsets remain null.