Writing

Subnet mask table

Published 15 September 2026 · Updated 22 September 2026

Every CIDR prefix from /0 to /32, with its subnet mask, wildcard mask, total addresses and usable hosts. The values below are generated rather than typed, and the /31 and /32 rows are correct, which is not true of most CIDR charts you will find. If you want this subnet mask cheat sheet on paper, the same table comes as a one-page PDF at the end of this page.

PrefixSubnet maskWildcardAddressesUsable hosts
/00.0.0.0255.255.255.2554,294,967,2964,294,967,294
/1128.0.0.0127.255.255.2552,147,483,6482,147,483,646
/2192.0.0.063.255.255.2551,073,741,8241,073,741,822
/3224.0.0.031.255.255.255536,870,912536,870,910
/4240.0.0.015.255.255.255268,435,456268,435,454
/5248.0.0.07.255.255.255134,217,728134,217,726
/6252.0.0.03.255.255.25567,108,86467,108,862
/7254.0.0.01.255.255.25533,554,43233,554,430
/8255.0.0.00.255.255.25516,777,21616,777,214
/9255.128.0.00.127.255.2558,388,6088,388,606
/10255.192.0.00.63.255.2554,194,3044,194,302
/11255.224.0.00.31.255.2552,097,1522,097,150
/12255.240.0.00.15.255.2551,048,5761,048,574
/13255.248.0.00.7.255.255524,288524,286
/14255.252.0.00.3.255.255262,144262,142
/15255.254.0.00.1.255.255131,072131,070
/16255.255.0.00.0.255.25565,53665,534
/17255.255.128.00.0.127.25532,76832,766
/18255.255.192.00.0.63.25516,38416,382
/19255.255.224.00.0.31.2558,1928,190
/20255.255.240.00.0.15.2554,0964,094
/21255.255.248.00.0.7.2552,0482,046
/22255.255.252.00.0.3.2551,0241,022
/23255.255.254.00.0.1.255512510
/24255.255.255.00.0.0.255256254
/25255.255.255.1280.0.0.127128126
/26255.255.255.1920.0.0.636462
/27255.255.255.2240.0.0.313230
/28255.255.255.2400.0.0.151614
/29255.255.255.2480.0.0.786
/30255.255.255.2520.0.0.342
/31255.255.255.2540.0.0.122 *
/32255.255.255.2550.0.0.011

* /31 is the exception explained below.

How to read a row

The prefix length is how many bits belong to the network: it is the number after the slash in CIDR notation. A /24 means the first 24 bits identify the network and the remaining 8 identify the host, which is why it holds 28 = 256 addresses.

The subnet mask is those same bits painted out in dotted decimal: 24 ones followed by 8 zeros is 255.255.255.0. The wildcard mask is that inverted: 0.0.0.255, and it is what Cisco access lists and OSPF network statements expect. Getting those two the wrong way round is the single most common ACL mistake there is.

Usable hosts is two fewer than the address count, because the first address in a block is the network identifier and the last is the broadcast address. Neither can be assigned to a machine.

The two rows most tables get wrong

Apply "subtract two" blindly and you get nonsense at the bottom of the table: /31 comes out as zero usable hosts and /32 as minus one. Plenty of published tables print exactly that.

/32 is a single address, and it is useful. It is how you write a host route, a loopback interface, or a single-address match in a firewall rule. One address, one host, no network or broadcast address to reserve.

/31 gives you two usable addresses, not zero. RFC 3021 defines this for point-to-point links: with only two addresses there is nothing to broadcast to that is not simply "the other end", so both are assignable. It halves the address waste on router-to-router links, where a /30 spends four addresses to connect two interfaces. Every current router platform supports it.

Doing it in your head

You rarely need the whole table. Two facts cover most of it:

The block size in that octet is 256 minus the mask value. A /26 has a mask of 192, so the blocks are 64 apart: .0, .64, .128, .192. That trick tells you which subnet an address falls in faster than any calculator.

The ones worth memorising

A note on IPv6

IPv6 uses the same prefix notation and none of the arithmetic above. There is no broadcast address, so nothing is subtracted; a /64 is the standard subnet size and holds 264 addresses, which is more than the entire IPv4 internet squared. Allocations are typically /48 to a site and /64 to each network, and the host count stops being a number anyone counts.

Using more than one size

Nothing says every subnet in a network must be the same size. Giving a point-to-point link a /30 while the office gets a /26 is variable length subnet masking, and it is how you stop wasting 60 addresses on a two-address link: see VLSM explained.

Need the answer for a specific address? The subnet calculator takes a CIDR block, a mask, a wildcard or a pasted line of ifconfig output and works out the network, broadcast, usable range and host count, including the /31 and /32 cases above. It runs in your browser and sends nothing anywhere.

Open the subnet calculator