Subnet Calculator
Network analysis and subnet enumeration for production environments.
Network Input
Network Details
Additional Information
Binary Representation
Subnet Enumeration
Network and broadcast derivation
The network address is found with a bitwise AND between the IP address and the subnet mask. The broadcast address is found with a bitwise OR between the IP address and the inverse of the subnet mask. These are the same operations a router performs when determining whether a destination is local or remote.
Host addresses as input
You do not need to enter the network address itself. If you enter 192.168.10.37/26, the tool derives 192.168.10.0/26 automatically. This mirrors real-world troubleshooting, where you often have a host IP and mask and need to know the boundaries of the subnet it sits in.
Wildcard masks
The wildcard mask is the bitwise inverse of the subnet mask. It is used in Cisco ACLs (access-list 1 permit 192.168.10.0 0.0.0.255) and in OSPF network statements (network 192.168.10.0 0.0.0.255 area 0). The tool reports it prominently because it is required input in many IOS configurations.
/31 and /32 handling
A /31 prefix contains two addresses. By the classic formula, that yields zero usable hosts because the network and broadcast addresses consume the entire block. However, RFC 3021 permits both addresses to be used as host addresses on point-to-point links. The tool reports both addresses as usable and reflects that in the Usable Hosts count, with a note explaining why.
A /32 is a single host route. It contains one address and is valid input, commonly seen in loopback interfaces and specific BGP announcements.
Classful addressing
The tool reports legacy class (A, B, C, D, E) for historical context only. It never applies classful defaults to the calculation. A 10.0.0.0/24 network is calculated as a /24, not as a Class A /8. Classful boundaries have not governed routing decisions since CIDR was introduced in 1993.
Display limits
The subnet arithmetic is instant at any prefix length. The limits below apply only to DOM rendering, which becomes expensive when generating millions of table rows:
- 1 to 256 subnets: Full table rendered. This covers a /16 split into /24s (256 subnets) and essentially all production network designs.
- 257 to 1,024 subnets: Full table rendered with a performance notice.
- Over 1,024 subnets: Summary shown with a paginated range selector. No more than 256 rows are placed in the DOM at once.
If you genuinely need to enumerate an entire /8 into /30s (over four million subnets), a browser table is the wrong tool. Export the logic to a script or use a purpose-built IPAM system.
Accepted input ranges
| Field | Range |
|---|---|
| IPv4 octet | 0 to 255 |
| CIDR prefix | 0 to 32 |
| Split target prefix | Current prefix + 1 to 32 |
