Most people don't think about whether they have an IPv6 address. They've heard the term — maybe seen it in a router settings page or a network diagnostic — but the question of whether they have one, what it looks like, or what it does has never come up.
If you do have one, it looks something like this: 2001:0db8:85a3::8a2e:0370:7334. Eight groups of four hex digits, separated by colons. Where IPv4 fits comfortably in your head — 192.168.1.1, four dotted numbers — IPv6 is longer, more abstract, and a little intimidating on first inspection.
This piece walks through what an IPv6 address actually is, how to read one, why you probably have several at once, and what each of them reveals.
Why IPv6 exists
If you read our piece on IPv4 addresses, you already know the punchline: there aren't enough of them. The 32-bit IPv4 address space tops out at about 4.3 billion unique addresses. That sounded like a lot when the protocol was designed in 1981. By the early 2000s it was clearly running out.
NAT — the trick where one public IP fronts for dozens of private devices in a home or office — bought IPv4 about two decades of borrowed time. But NAT is a workaround, not a solution. It breaks peer-to-peer protocols, complicates connection state, and makes hosting a server from home much harder than it used to be.
IPv6 is the real fix. It uses 128-bit addresses instead of 32-bit. The available address space goes from about 4.3 billion to roughly 340 undecillion — that's 3.4 × 10³⁸. Practically infinite. There is no plausible scenario in which we run out.
How to read an IPv6 address
An IPv6 address is 128 bits, written as eight groups of four hex digits separated by colons:
2001:0db8:85a3:0000:0000:8a2e:0370:7334
Each group is 16 bits. Eight groups times sixteen bits gives you 128 bits total. Two compression rules let you write the same address more compactly:
- Leading zeros in each group can be dropped.
0db8becomesdb8;0000becomes0. - One run of consecutive all-zero groups can be replaced with
::— but only once per address. Otherwise the compression would be ambiguous and you couldn't tell how many zero groups each::was hiding.
So the address above can be compressed to:
2001:db8:85a3::8a2e:370:7334
The :: stands in for two consecutive 0000 groups, and the rest have their leading zeros stripped. Both forms refer to the same address.
A few more compression examples:
fe80:0000:0000:0000:0000:0000:0000:0001becomesfe80::10000:0000:0000:0000:0000:0000:0000:0001becomes::1— the IPv6 equivalent of127.0.0.1, the loopback address your computer uses to refer to itself
You probably have more than one
Here's something most people don't know: at any given moment, your computer probably has multiple IPv6 addresses at the same time. Each one serves a different purpose.
A global address. This is the one that lets you reach the open internet. Globally routable IPv6 addresses generally start with the digits 2 or 3 — that's the range IANA assigned for normal unicast traffic. When a website sees your IPv6, this is what it sees. Or one of these, since you may have more than one of these too.
A link-local address. Every IPv6 interface gets a link-local address automatically, regardless of whether the network has connectivity to the wider internet. They start with fe80:: and are valid only on the local network segment. They're how your device talks to your router and to other devices on the same WiFi or Ethernet, including for protocols like Neighbour Discovery (the IPv6 equivalent of ARP). Packets carrying a link-local source address don't route across the internet.
A temporary "privacy" address. On most modern systems — Windows, macOS, recent Linux distributions, iOS, Android — your computer also generates a temporary IPv6 address that rotates regularly, typically once per day. This is the address actually used for outbound connections. The stable global address still exists, but it increasingly sits idle while the temporary one does the day-to-day work.
If you check your IPv6 address today and again next week, the stable global one might match. The temporary one almost certainly won't.
Why temporary addresses exist
This is where the privacy story gets interesting.
In the original IPv6 specification, the lower 64 bits of an address — the interface identifier — were derived from the device's MAC address using a process called EUI-64. The MAC address is a 48-bit number burned into your network card; mapping it into the IPv6 address space gave each device a stable, unique identifier. It also created a serious tracking problem.
Because the interface identifier was tied to the hardware, the same device carried a recognisable suffix wherever it went. Move your laptop from your home WiFi to a coffee shop network, and the lower half of your IPv6 address would stay the same. Anyone observing traffic across multiple networks could trivially correlate your activity. The address itself was a tracking cookie you couldn't delete.
RFC 4941 (later updated by RFC 8981) introduced "privacy extensions" — a way to generate temporary IPv6 addresses with random interface identifiers that rotate over time. Outbound connections use the temporary address; it gets thrown away and replaced regularly. The stable address remains for inbound connections — someone connecting to your machine — but normal browsing happens from an address that didn't exist yesterday and won't exist tomorrow.
This is on by default in every major operating system shipped in the last decade. You almost certainly benefit from it without ever having configured it.
IPv6 vs IPv4 in the wild
Adoption is high in some places and low in others. Most consumer ISPs in the United States, Canada, Western Europe, India, and large parts of East Asia provision IPv6 by default. T-Mobile's mobile network, Comcast's residential service, Reliance Jio in India — these all run IPv6 natively to the customer, with IPv4 carried as a translated overlay rather than a first-class citizen.
But the destination matters too. A surprising number of websites and services still don't speak IPv6. When your IPv6-equipped device tries to reach an IPv4-only service, one of two things happens. Either your operating system opens the connection over IPv4 instead — most ISPs still hand you a working IPv4 address alongside your IPv6 prefix — or the connection traverses a translation gateway that maps IPv6 traffic onto IPv4 endpoints behind the scenes.
In practice, your device may have a perfectly good IPv6 address while a meaningful share of the connections it makes still use IPv4 because the other end isn't ready.
Google publishes a public measurement of what percentage of its users connect over IPv6, updated daily. That number has hovered between 45% and 50% globally for a while now, with peaks well above 70% in countries like India, France, and Germany and stubborn lows in much of South America and Africa. The trendline is up and to the right, and has been since 2012 — but full IPv4 retirement is still nowhere on the horizon.
For geolocation specifically, IPv6 is trickier than IPv4. The address space is enormous, deployment is newer, and the probe-network databases that resolve IP addresses to cities are still catching up. Expect IPv6 geolocation to be less precise than IPv4 for the next several years.
How to see your own
The simplest way to check your IPv6 address is to look at the IP lookup tool here on Network Lookup. It shows whatever address your connection is presenting to our servers — if your ISP is routing IPv6, that's what you'll see; if only IPv4 reaches us, the lookup will show only the v4 address.
If you expected to see IPv6 and only IPv4 appears, the issue is upstream of your device. Either your ISP isn't provisioning IPv6 at all, or your home router isn't passing it through. Many older consumer routers ship with IPv6 disabled by default even on connections that support it, and switching it on is usually a single checkbox in the router admin interface.
From the command line, you can see the full picture. On Windows, ipconfig (or ipconfig /all for the verbose version) lists every address on every interface. On macOS and Linux, ifconfig or ip addr show does the same. The output is often longer than you'd expect — the global address, the link-local fe80:: address, and one or more temporary addresses all visible at once, each tagged with its scope and lifetime.
See your IPv6 (and your IPv4)
Your IP lookup result on Network Lookup shows both IPv4 and IPv6 if your connection has them — plus your ISP, ASN, and apparent location for whichever address is in use right now.
Look up my IP →