CIDR (Classless Inter-Domain Routing, RFC 4632) is how networks write address ranges. The number after the slash is how many bits of the address are fixed; the rest can vary. For IPv4, with 32 bits in total:

PrefixAddressesTypical use
/321One host, for example an allowlist entry
/24256A common block size, and a common blocking unit
/1665,536A large allocation

For IPv6 a /64 is the standard size of a single subnet, often handed to one customer, and holds 2^64 addresses.

Why it matters for proxies

Autonomous systems announce their space as CIDR blocks, and websites often block or rate-limit by block rather than by single address. Ten proxies in the same /24 can fall together when one of them misbehaves, so when you test a provider, count distinct /24s as well as distinct IPs. CIDR also turns up in IP allowlists, firewall rules and NO_PROXY lists, though not every tool accepts a range where it accepts an address.

Check whether an IP is in a range

Python's standard library does the arithmetic:

import ipaddress

net = ipaddress.ip_network("203.0.113.0/24")
print(net.num_addresses)                              # 256
print(ipaddress.ip_address("203.0.113.77") in net)    # True
print(ipaddress.ip_network("203.0.113.77/24", strict=False))  # 203.0.113.0/24

The last line is the quick way to find an address's /24 when you group a list of proxies by subnet.

Common confusion

A /24 is not 24 addresses, and a bigger prefix number means a smaller range. The addresses in these examples come from 203.0.113.0/24, a block reserved for documentation.