What Your IP Address Reveals: IPv4, IPv6, NAT and VPNs Explained

What an IP address actually identifies, why you may have several, how NAT, carrier-grade NAT and IPv6 privacy addresses change the picture, and what a VPN hides.

"What is my IP address?" is one of the most searched questions on the web. The answer is less simple than one number suggests. Your device usually has several addresses, websites see a different one again, and that address may be shared with thousands of other people.

What an IP address identifies

An IP address is a routing label: it tells the network where to deliver packets. When your browser loads a page, the server sees the address the connection came from, the public address. That address belongs to whoever runs the last hop before the internet. That is your home router (provided by your ISP), your mobile carrier, your workplace network or your VPN.

So an IP address identifies a network connection at a point in time, not a person and not usually a device.

IPv4 and IPv6

IPv4 addresses are 32-bit numbers written as four decimal parts, such as 203.0.113.7. There are only about four billion of them, far fewer than devices online.

IPv6 addresses are 128-bit numbers written in hexadecimal groups, such as 2001:db8:85a3::8a2e:370:7334. There are so many that every device can have its own globally routable address.

Many connections are dual-stack and have both. Browsers usually try IPv6 and IPv4 in parallel and use whichever connects first. So whether a website sees your IPv4 or IPv6 address can vary between visits, and a single request only ever reveals one of them.

NAT: many devices, one address

Because IPv4 addresses are scarce, home routers use network address translation (NAT). Devices on your network get private addresses from reserved ranges, such as 192.168.0.0/16 or 10.0.0.0/8, and the router translates their traffic to its single public address. Everyone in your household appears to websites as the same IP.

Mobile carriers and some broadband providers add a second layer: carrier-grade NAT (CGNAT). Your router or phone gets an address from 100.64.0.0/10, a block RFC 6598 reserves as "shared address space" that is not globally routable. The carrier then translates thousands of customers to a smaller pool of public addresses. In that case your public IP is shared with strangers, and IP-based blocking or geolocation becomes much less precise.

IPv6 privacy addresses

With IPv6 there is no shortage, so NAT is rarely needed, and each device gets its own public address. To stop that address from becoming a long-term identifier, operating systems generate temporary addresses with randomized interface identifiers. RFC 8981 describes them, with a default preferred lifetime of one day and a valid lifetime of two days. Your IPv6 address therefore changes regularly, even if the network prefix assigned by your ISP stays the same.

How accurate is IP geolocation?

IP location comes from databases that map address blocks to places, built from registration records, ISP data and measurements. Country is usually right. City is often approximate, and for mobile networks, satellite connections, CGNAT and VPNs it can be wrong by hundreds of kilometres. An IP address alone does not give anyone your street address. That takes records from the ISP, which normally requires a legal process.

What a VPN changes

A VPN sends your traffic through an encrypted tunnel to a server, and websites see the VPN server's address instead of your ISP's. It does not change your browser's time zone, language or fingerprint, and the VPN provider can see the same metadata your ISP used to.

One known gap is WebRTC. If a VPN doesn't route WebRTC's STUN traffic, a page can discover your real public address through it. The WebRTC leak test checks for that.

Reading BrowserProbe's result

The IP address test shows the one address your request arrived from, its family (IPv4 or IPv6), and whether it is public or falls in a special-purpose range, as defined by IANA's registries. It also shows the approximate location our host's database gives it. The address isn't stored by the application.

Sources

  1. IANA IPv4 Special-Purpose Address Registry
  2. IANA IPv6 Special-Purpose Address Registry
  3. RFC 6598: IANA-Reserved IPv4 Prefix for Shared Address Space
  4. RFC 8981: Temporary Address Extensions for Stateless Address Autoconfiguration in IPv6
  5. RFC 8828: WebRTC IP Address Handling Requirements