Private vs public IP addresses
A private IP address only means something inside your own network; a public IP address is unique and routable across the whole internet. Almost every device you own has both at once, one private and one shared public address, connected by NAT.
Last reviewed:
Looking for the complete table instead? Every prefix from /0 to /32, with mask, wildcard and host count, is on the CIDR reference.
What makes an address private
IANA set aside three blocks of IPv4 address space, defined in RFC 1918, that routers on the public internet are configured to never forward: 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16. Any device can use an address from these ranges on its own local network without asking anyone's permission, because the same address can be reused on millions of other private networks at the same time without conflict.
That reuse is exactly why the ranges exist. When RFC 1918 was published in 1996, it was already clear the internet did not have enough public IPv4 addresses for every device on every home and office network, so private ranges let organisations number their internal networks freely while only spending public addresses at the edge.
The three private ranges
10.0.0.0/8 is the largest, 16,777,216 addresses, and is the usual choice for large corporate and cloud networks that need room for many subnets. 172.16.0.0/12 holds 1,048,576 addresses and sits in the middle, less common but still seen in mid-sized deployments. 192.168.0.0/16 holds 65,536 addresses and is the default on almost every home router, usually carved down further to a single 192.168.1.0/24 or 192.168.0.0/24.
Two related ranges are private in spirit but reserved for a specific purpose rather than general use: 127.0.0.0/8, the loopback range where 127.0.0.1 always means this device, and 169.254.0.0/16, the link-local range a device assigns itself automatically when it cannot reach a DHCP server.
Every reserved IPv4 range, not just the private three
RFC 1918 gets all the attention, but it covers three blocks out of sixteen that are set aside for something. The rest matter because a packet from any of them behaves unlike a normal public address, and because two of them are routinely mistaken for private space.
The one that catches people out is 100.64.0.0/10. It looks private, it is not routed on the public internet, and it is not RFC 1918: it is carrier-grade NAT space, handed out by an ISP to sit between the customer and the real internet. Using it inside your own network is asking for a collision with your provider, and the symptom is a connection that works everywhere except from one carrier.
| Block | Name | Defined by | What it is for |
|---|---|---|---|
| 255.255.255.255/32 | Limited broadcast | RFC 919 | The all-hosts broadcast address for the local link. Routers never forward it. |
| 192.0.2.0/24 | Documentation (TEST-NET-1) | RFC 5737 | Reserved for examples and documentation. Safe to print, never routed. |
| 198.51.100.0/24 | Documentation (TEST-NET-2) | RFC 5737 | The second documentation range, used when an example needs two distinct networks. |
| 203.0.113.0/24 | Documentation (TEST-NET-3) | RFC 5737 | The third documentation range, used when an example needs a third network. |
| 192.88.99.0/24 | 6to4 relay anycast (deprecated) | RFC 7526 | The old 6to4 relay anycast prefix. Its use was deprecated in 2015. |
| 192.0.0.0/24 | IETF protocol assignments | RFC 6890 | Held by the IETF for protocol assignments such as DS-Lite and NAT64 discovery. |
| 169.254.0.0/16 | Link-local | RFC 3927 | Self-assigned when DHCP fails. Valid only on the local link, never routed. |
| 192.168.0.0/16 | Private-use | RFC 1918 | The private range home routers and small offices use by default. |
| 198.18.0.0/15 | Benchmarking | RFC 2544 | Reserved for network device benchmarking so test traffic cannot escape. |
| 172.16.0.0/12 | Private-use | RFC 1918 | The mid-sized private range, 172.16.0.0 through 172.31.255.255. |
| 100.64.0.0/10 | Shared address space (CGNAT) | RFC 6598 | Carrier-grade NAT space. It is not RFC 1918 private space, and it must not be used inside a customer network that a carrier also NATs. |
| 224.0.0.0/4 | Multicast | RFC 5771 | Group addressing. A multicast address identifies a set of receivers, never one interface. |
| 240.0.0.0/4 | Reserved for future use | RFC 1112 | Formerly class E. Still reserved, and many stacks refuse to assign it. |
| 10.0.0.0/8 | Private-use | RFC 1918 | The largest private range, 16,777,216 addresses. The usual choice for a big internal network. |
| 127.0.0.0/8 | Loopback | RFC 1122 | Traffic never leaves the host. The whole /8 loops back, not just 127.0.0.1. |
| 0.0.0.0/8 | This network | RFC 1122 | Means this host on this network. 0.0.0.0/0 as a route is a different thing: the default route. |
Only the three RFC 1918 rows are private address space. Loopback, link-local and CGNAT are separate things that happen to be unroutable, which is why a tool that lumps them together as private gives the wrong answer.
The IPv6 side, which does not work the same way
IPv6 has no NAT-by-default and no address shortage, so private addressing plays a much smaller role. The nearest equivalent to RFC 1918 is fc00::/7, unique local addresses, and even those are meant to be globally unique rather than reused everywhere the way 192.168.0.0/16 is.
There is also no broadcast address anywhere in IPv6, so nothing is reserved for it. The jobs broadcast did in IPv4 are done by multicast groups under ff00::/8, and every interface additionally carries a link-local address in fe80::/10 whether you configured one or not.
| Block | Name | Defined by | What it is for |
|---|---|---|---|
| ::/128 | Unspecified | RFC 4291 | The all-zeros address. A host uses it as a source while it still has no address. |
| ::1/128 | Loopback | RFC 4291 | The IPv6 loopback. Unlike IPv4 it is a single address, not a whole block. |
| 64:ff9b::/96 | IPv4-IPv6 translation (NAT64) | RFC 6052 | The well-known prefix a NAT64 gateway uses to embed an IPv4 address in IPv6. |
| ::ffff:0:0/96 | IPv4-mapped | RFC 4291 | How a dual-stack socket represents an IPv4 peer, for example ::ffff:192.0.2.1. |
| 64:ff9b:1::/48 | Local-use IPv4-IPv6 translation | RFC 8215 | For translation prefixes that stay inside one network rather than being global. |
| 100::/64 | Discard-only | RFC 6666 | A black hole prefix. Routing unwanted traffic here drops it cheaply. |
| 2001:db8::/32 | Documentation | RFC 3849 | Reserved for examples. This is the IPv6 counterpart of 192.0.2.0/24. |
| 2001:20::/28 | ORCHIDv2 | RFC 7343 | Overlay routable cryptographic hash identifiers, used by HIP. |
| 3fff::/20 | Documentation | RFC 9637 | A second, larger documentation range added in 2024 for examples that need more room. |
| 2001::/32 | Teredo | RFC 4380 | Teredo tunnelling, which carried IPv6 over UDP through IPv4 NATs. |
| 2002::/16 | 6to4 | RFC 3056 | The 6to4 transition scheme. Its relay anycast prefix was deprecated in 2015. |
| fe80::/10 | Link-local unicast | RFC 4291 | Every IPv6 interface has one. Valid only on its own link, so it usually needs a zone id. |
| ff00::/8 | Multicast | RFC 4291 | IPv6 has no broadcast at all. Multicast groups do the work broadcast did in IPv4. |
| fc00::/7 | Unique local | RFC 4193 | The IPv6 equivalent of private space, though the addresses are meant to be globally unique. |
3fff::/20 is the newest entry here: a second documentation range added in 2024 by RFC 9637, because 2001:db8::/32 on its own was too small for examples that need several distinct networks.
How a private address reaches the public internet
A private address cannot be routed on the internet: no public router carries a route for 10.0.0.0/8, so a packet from a private address would have nowhere to go. Network Address Translation (NAT), running on your router or firewall, solves this by rewriting the source address of outgoing traffic to the router's own public IP address before it leaves the local network, then translating replies back to the right private address on the way in.
That is why a laptop can show a private address like 192.168.1.42 while an external site reports a completely different, public address: the private address is what the laptop knows about itself, and the public address is what the rest of the internet sees.
How to tell if an address is private
Check whether it falls inside 10.0.0.0/8, 172.16.0.0/12, or 192.168.0.0/16. The subnet calculator on this site flags an address as private automatically when you enter it, using exactly these three ranges plus loopback and link-local.
Everything outside those ranges, aside from a handful of other reserved blocks such as documentation ranges and multicast, is public: assigned to an organisation and, if actually routed, reachable from anywhere on the internet.
Frequently asked questions
What are the three private IP ranges?
10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16, defined in RFC 1918. Together they total roughly 17.9 million addresses set aside for use on private networks.
Can two devices on different networks share the same private IP?
Yes, and it happens constantly. Millions of home routers use 192.168.1.1 for their own gateway address; it causes no conflict because private addresses are never routed between networks directly.
Is 127.0.0.1 a private IP address?
It is reserved rather than private in the RFC 1918 sense. 127.0.0.0/8 is the loopback range, and 127.0.0.1 always refers back to the device itself, never to another host.
How do I know if my IP address is public or private?
The address your router shows for a device on your LAN, often starting 192.168 or 10, is private. The address an external site reports back to you is your public address, the one NAT translates to.
Sources
Everything technical on this page is checkable against the documents below. Where a document and common practice disagree, the guide says so rather than picking one quietly.
- RFC 1918: Address allocation for private internets
- RFC 6598: IANA-reserved IPv4 prefix for shared address space (carrier-grade NAT)
- RFC 3927: Dynamic configuration of IPv4 link-local addresses
- RFC 4193: Unique local IPv6 unicast addresses
- IANA IPv4 Special-Purpose Address Registry
- IANA IPv6 Special-Purpose Address Registry
Spotted something wrong? Tell us and it gets corrected. How the data is maintained is described on the about page.