Private IP Address Ranges
RFC 1918 sets three IPv4 ranges aside for private networks: 10.0.0.0/8, 172.16.0.0/12 and 192.168.0.0/16. Any network can number its devices from them without asking a registry, so the same address is in use in countless networks at once, and none of them is routed on the public internet.
So a private address never reaches your site as a visitor: the router or carrier swaps it for a public one first, and that public address is the one to check for a VPN or proxy. Here's each range's first and last address and size, the CGNAT and IPv6 ranges that stay off the internet too, and a check for any address.
Three IPv4 ranges are private
Set aside by RFC 1918 in 1996 for networks that number their own devices: 17,891,328 addresses between them.
| RANGE | FIRST ADDRESS | LAST ADDRESS | ADDRESSES |
|---|---|---|---|
| 10.0.0.0/8 | 10.0.0.0 | 10.255.255.255 | 16,777,216 |
| 172.16.0.0/12 | 172.16.0.0 | 172.31.255.255 | 1,048,576 |
| 192.168.0.0/16 | 192.168.0.0 | 192.168.255.255 | 65,536 |
Is this IP address private?
Enter any IPv4 or IPv6 address to see whether it's private, reserved for another use or public. It's checked in your browser against the bogon list, so nothing is looked up or sent.
Three more ranges that never reach the public internet
Carrier-grade NAT's shared space and IPv6's own private and link-local ranges. They sit on the bogon list beside the three above, with every other range reserved for a special use.
| NETBLOCK | WHAT IT'S FOR | REFERENCE |
|---|---|---|
| 100.64.0.0/10 | Carrier-grade NAT: a mobile or broadband carrier numbers its customers from 100.64.0.0 to 100.127.255.255 behind its own NAT | RFC 6598 |
| fc00::/7 | Unique local addresses, IPv6's counterpart to RFC 1918; the half in use is fd00::/8 | RFC 4193 |
| fe80::/10 | Link-local: valid on one network link only, and every IPv6 interface has one | RFC 4291 |
Common questions
What makes an IP address private?
Being in a range set aside for networks to number themselves: 10.0.0.0/8, 172.16.0.0/12 and 192.168.0.0/16 in IPv4 (RFC 1918), and fc00::/7 in IPv6. No registry assigns them, so any network may use them, and routers on the public internet drop them rather than guess which network is meant.
What's the difference between a private and a public IP address?
A public address is assigned to one network, which announces it to the rest of the internet, so it reaches that network from anywhere. A private address means something only inside its own network, and reaches the internet through a NAT that swaps it for a public one. The check above tells you which an address is.
Is 100.64.0.0/10 a private IP range?
Not under RFC 1918. It's shared address space for carrier-grade NAT (RFC 6598): a mobile or broadband carrier numbers its customers from it behind its own NAT. Like a private range it never appears on the public internet, but it's meant for carriers, so numbering your own network from it can clash with your provider's.
Why does a private IP address never show up as a visitor?
Because it never leaves its network: the router or the carrier's NAT replaces it with a public address before the request reaches the internet, and that public address is what a site sees. A private address in a server's logs comes from inside its own network, such as a load balancer or proxy in front of it, or from a header like X-Forwarded-For, which the client can write.
Can a VPN give me a private IP address?
Inside the tunnel, often: a VPN commonly numbers each client from a private range on the tunnel's own interface. A site never sees that address. It sees the VPN server's public exit address, which is the one the API flags as a VPN.
How does the API answer a private IP address?
With is_bogon true and every other flag false, since there's nothing on the public internet to observe there. The official SDKs answer one themselves without sending a request.
Unlimited lookups, no sign-up.
Paste it into a terminal. Any address answers its VPN, Tor and relay flags, where it is and which network announces it, with no daily or monthly cap.
{"ip": "146.70.116.130","is_vpn": true,"is_relay": false,"is_tor": false,"location": {"country": "AT", ...},"asn": { "asn": 9009, ... }}