| Metric | Value | Copy |
|---|---|---|
| {{ row.key }} | {{ row.value }} |
| Offset | Address | Role | Copy |
|---|---|---|---|
| {{ row.row }} | {{ row.address }} | {{ row.role }} |
| Prefix | Mask | Wildcard | Total | Usable | Relative size | Host target fit |
|---|---|---|---|---|---|---|
| {{ row.prefix }} | {{ row.mask }} | {{ row.wildcard }} | {{ row.totalAddresses }} | {{ row.usableHosts }} | {{ row.relativeSize }} | {{ row.fitLabel }} |
| # | Demand | Planned | Capacity | CIDR | First | Last | Broadcast | Waste | Status |
|---|---|---|---|---|---|---|---|---|---|
| {{ row.order }} | {{ row.requestedDisplay }} | {{ row.plannedDisplay }} | {{ row.capacityDisplay }} | {{ row.cidr }} | {{ row.firstHost }} | {{ row.lastHost }} | {{ row.broadcast }} | {{ row.wasteDisplay }} | {{ row.status }} |
| Topic | Value | Copy |
|---|---|---|
| {{ row.key }} | {{ row.value }} |
IPv4 subnetting is the practice of dividing a 32-bit address space into smaller blocks so routers, VLANs, VPNs, and server segments use addresses without overlap. A correct boundary tells you which bits identify the network and which bits remain for hosts, so a bad mask can ripple into wrong gateways, unreachable peers, and wasted address space. This calculator turns one IPv4 seed into a concrete subnet summary and, when needed, a simple variable-length split plan.
It accepts the notation administrators usually inherit rather than forcing one format. A CIDR seed such as 10.42.8.19/23 works directly, and an address plus dotted mask such as 10.42.8.19 255.255.254.0 is resolved back into the same prefix math. From there the tool rebuilds the addressing envelope: subnet mask, wildcard mask, network, first and last host, broadcast, total addresses, and usable hosts.
That makes it useful when you are checking a firewall request, documenting a VLAN cut, validating a parent allocation, or confirming that two teams are talking about the same network boundary. It also helps when you need a quick sample of usable addresses or a specific host offset without counting through the subnet by hand.
The split planner addresses a second job that often gets done on paper. When one parent block has to serve several host demands, the calculator sizes each request to an aligned subnet, adds optional reserve headroom, and shows where waste or exhaustion appears before you publish an allocation plan.
The result still needs interpretation. A class label such as Class C is only a legacy first-octet family, not a routing policy. A range label such as RFC 1918 private space or CGNAT shared space describes where the address falls, but it does not prove that the block is routed, delegated to you, or safe to deploy unchanged.
A strong first pass is to paste the source notation exactly as you received it and leave Prefix override on Auto. If the handoff already includes a dotted mask, keep it that way for the first check instead of converting it in your head. That reduces transcription mistakes and lets the Subnet Ledger confirm the parent block you think you were given.
The most common misread is around host counts. In ordinary subnets, Usable hosts excludes the network and broadcast addresses. At /31 and /32, that rule changes: the tool exposes two point-to-point endpoints for /31 and one single address for /32. If the Host Window looks unusual, check the prefix before assuming the math is wrong.
A blank or generic range label is not a failure. It means the address did not match one of the special blocks listed in this package. Before trusting a split plan, make sure the summary line shows the intended parent Network/Prefix, then compare Previous subnet and Next subnet in Address Math with your authoritative address plan.
IPv4 subnetting is bitmask arithmetic. A prefix length /p means the first p bits belong to the network and the remaining 32 - p bits belong to hosts. Changing the prefix changes every downstream field because the mask redraws the boundary between shared network identity and per-host variation.
This calculator resolves the seed into one deterministic path. It parses either CIDR or an address plus dotted mask, applies Prefix override only if you deliberately force one, builds the subnet mask from the final prefix, inverts that mask to get the wildcard, and then computes the network and broadcast addresses with standard bitwise operations. The Address Math tab exposes the same logic in binary and hexadecimal so you can audit the boundary instead of treating the result as a black box.
Address counts come directly from host-bit width. Total addresses is 2^(32 - p). For most prefixes, Usable hosts is that total minus two because the all-zero host value is the network address and the all-one host value is the broadcast address. The package keeps the modern point-to-point exception: /31 returns two usable endpoints, and /32 returns one single host.
The split planner applies practical variable-length subnet mask (VLSM) rules instead of a loose estimate. Each demand is optionally grown by the reserve percentage, rounded up, forced to at least two usable hosts, wrapped with network and broadcast overhead, and promoted to the next power-of-two block. The planner then aligns that block to its natural boundary inside the parent network. If the required child prefix would be larger than the parent can express, the row becomes Too large for parent prefix. If alignment pushes the block past the parent broadcast, the row becomes Insufficient address space.
Two labels in the summary are descriptive only. Class family is inferred from the first octet, which is historically familiar but not how modern routing policy is defined. Address range is matched against a short list of notable IPv4 blocks in the package, including RFC 1918 private space, RFC 6598 shared CGNAT space, loopback, link-local, multicast, and reserved 240.0.0.0/4. Anything outside those checks is treated as public or unclassified context, not as proof of reachability.
The main subnet fields are derived from four small equations.
| Symbol or Field | Meaning | Where it appears | Format |
|---|---|---|---|
| p | Final prefix length after optional override | Prefix, Network bits | Host bits | 0 to 32 |
| M | Subnet mask built from the prefix | Subnet mask, Mask bits, Mask (hex) | IPv4 or hex |
| W | Wildcard mask, the inverse of the subnet mask | Wildcard mask, Wildcard (hex) | IPv4 or hex |
| N | Network base address after mask application | Addressing Envelope, Network bits | IPv4 |
| B | Broadcast address for the subnet | Broadcast, Broadcast bits | IPv4 |
| T | Total addresses in the block | Total addresses | count |
| Stage | Rule | Visible effect |
|---|---|---|
| Demand growth | Requested hosts are multiplied by the reserve factor and rounded up. | Sized hosts can exceed the original request. |
| Block sizing | The planner adds network and broadcast overhead, then rounds to the next power of two. | CIDR may be larger than a rough host-only estimate. |
| Alignment | Each child subnet is pushed up to the next valid boundary for its block size. | Gaps can appear between rows even when earlier space remains below the alignment point. |
| Fit check | The aligned block must stay inside the parent network and not require a prefix shorter than the parent. | Status becomes Allocated, Too large for parent prefix, or Insufficient address space. |
One quick mental check: a demand of 120 hosts with a 10% reserve becomes 132 sized hosts. After adding network and broadcast overhead, the smallest power-of-two block that fits is 256 addresses, which corresponds to /24. That is why modest reserve percentages can consume an extra bit of address space.
Start by proving the parent subnet, then move into host sampling or split planning.
/31 or /32, expect endpoint-style results rather than the usual network and broadcast exclusion.Network and Prefix are the primary trust check. If those two values do not match your intended parent block, every host row, split row, and binary display is describing the wrong subnet.
/31 exposes two endpoints and /32 exposes one address.Do not overread Class family or Address range. Those labels are quick context, not deployment approval. Before provisioning, compare Network, Broadcast, and Next subnet against the authoritative route table, IPAM entry, or design document that owns the parent allocation.
10.42.8.19/23, keep Prefix override on Auto, and use Split demand list 120, 60, 30 with a 10% reserve. The summary settles on Network 10.42.8.0/23, Broadcast 10.42.9.255, and Usable hosts 510. In Split Plan, the demands become 10.42.8.0/24, 10.42.9.0/25, and 10.42.9.128/26. That is a clean example of reserve headroom turning 120 hosts into a full /24 rather than a smaller guess.203.0.113.10/31. The tool reports Network 203.0.113.10, Broadcast 203.0.113.11, and Usable hosts 2. The Host Window shows two endpoint rows instead of a conventional network and broadcast pair, and Host probe index 1 resolves to 203.0.113.11. The lesson is that boundary behavior matters more than habit at very short prefixes.192.168.50.0/26 and use Split demand list 40, 20, 20 with a 10% reserve. The first row consumes the parent as /26, so later rows show em dashes for CIDR and Status becomes Insufficient address space. The corrective path is to choose a larger parent network, reduce reserve, or lower the host demands before publishing the allocation.Yes. The seed parser accepts either CIDR or an IPv4 address followed by a dotted mask. The mask has to be contiguous; otherwise the tool returns an error instead of guessing.
Because the package treats /31 as a two-endpoint point-to-point subnet and /32 as a single host. Those prefixes do not lose two addresses the way ordinary LAN-style subnets do.
Larger blocks are harder to place once small aligned subnets have already consumed boundary positions. Largest-first reduces that fragmentation risk. If rollout sequence matters more than packing efficiency, switch Split ordering to Keep entered order.
It means the address did not match one of the special IPv4 blocks hard-coded in this package. It is not a statement about whether the subnet is reachable, announced, reserved for documentation, or available for production use.
No dedicated subnet-calculation endpoint is present in this package. The parsing, counting, split planning, and address math are produced in the browser from the values currently on the page.