RFC 1918 medium-private block. 172.16.0.0/12 is one of the three private ranges. Roughly a million addresses.
172.16.0.0/12 is one of the three private ranges. Roughly a million addresses.
The /12 subnet uses 255.240.0.0 as its subnet mask — meaning the first 12 bits of every address identify the network, and the remaining 20 bits identify the host within that network. That gives you 1.05M total addresses (1.05M usable on standard RFC math, after subtracting the network and broadcast addresses).
The wildcard mask — the bitwise inverse of the subnet mask — is 0.15.255.255. Wildcards are what Cisco access-control lists and OSPF area definitions use instead of subnet masks; the "1" bits mark "don't care" positions. For a /12, that leaves 20 don't-care host bits.
To find the network address for any IP in a /12 block, perform a bitwise AND between the IP and the subnet mask. To find the broadcast, OR the network address with the wildcard. Modern tools — like our subnet calculator — do this in microseconds, but the underlying mechanics are straightforward binary arithmetic.
A /12 contains 1 million addresses. The 172.16.0.0/12 private range (RFC 1918) is the most famous example. Docker's default bridge network sits inside this range, which is why container networking discussions often mention /12.
Cloud-provider quirks matter at every prefix size: AWS and Azure reserve 5 IPs per subnet, GCP reserves 4, and OCI reserves 3. So a /12 on standard RFC math gives you 1.05M usable hosts, but on AWS or Azure that drops to 1.05M. The capacity-planning gap bites hardest at small prefixes (a /28 has 14 usable on paper, only 11 on AWS) but exists at every size. Our cloud-aware calculator applies the right math automatically.
A /12 subnet has 1.05M usable hosts on standard RFC math. On AWS or Azure (which reserve 5 IPs per subnet), you get 1.05M usable. On GCP (4 reserved), 1.05M. On OCI (3 reserved), 1.05M.
The /12 prefix corresponds to subnet mask 255.240.0.0. The matching wildcard mask (used in Cisco ACLs) is 0.15.255.255.
Apply a bitwise AND between the IP and the subnet mask to get the network address. OR the network address with the wildcard mask to get the broadcast. For example, 10.0.0.0/12 has 1.05M total addresses, with the first being the network address and the last being the broadcast.