IPv6 test

Whether your connection has working IPv6, and which protocol your browser picks when both are available.

IPv4
216.73.216.6
IPv6
Your browser preferred

Probing…

Most consumer networks still work fine without IPv6. It matters when a service is IPv6-only, or when your provider puts you behind carrier-grade NAT.

What this test does

A web server only ever sees the one address you arrived on. If you connect over IPv4, nothing about that connection reveals whether IPv6 also works for you — the information simply is not there. So the only honest way to answer "do I have IPv6" is to make your browser try: fetch something from a host that has an IPv6 address and nothing else, and see whether it succeeds.

That is what runs on this page. Three separate requests go out — one to a host reachable only over IPv4, one to a host reachable only over IPv6, and one to a host with both — and the results answer three different questions: whether each protocol works at all, and, from the third, which one your browser chose when it had a free choice. That last answer is the interesting one, and it is invisible from anywhere else.

Why any of this matters

IPv4 has about 4.3 billion addresses, which was an extravagant number in 1981 and ran out in practice some time ago: the central pool was exhausted in February 2011, and the European registry handed out its last freely available block in November 2019. There are no more to allocate. What providers do instead is share one public address between many customers, which works for browsing and breaks everything that expects an incoming connection.

IPv6 has 128 bits instead of 32. The number of addresses is not usefully expressible in words — it is roughly 340 undecillion — and the practical consequence is that every device can hold a genuinely globally routable address again, with no translation in the middle. Adoption has been slow but is no longer marginal: the large public measurements have shown roughly two in five users worldwide reaching services over IPv6 in recent years, with enormous variation between countries. Some national networks are past three quarters; others are close to zero.

Reading your result

Both protocols work
You are dual-stacked, which is the intended modern state. Everything reachable is reachable, and your browser picks between them per connection.
Only IPv4 works
Entirely normal and not a fault. Your provider, your router, or a VPN you are using does not carry IPv6. Nothing is broken; you simply cannot reach the small but growing number of services that publish nothing else.
Only IPv6 works
Rare, and usually deliberate — an IPv6-only network with a translation gateway for legacy destinations. If you did not set this up on purpose, something has gone wrong with the translation.
Neither works
You would not be reading this, so in practice it means the probe hosts are unreachable rather than that you are offline. Corporate proxies and filtering equipment sometimes block requests to hosts they do not recognise.

The preference result, and why browsers do that

When a name has both an A and an AAAA record, the browser has to choose, and modern browsers do something more careful than picking one. The algorithm is called Happy Eyeballs: the browser starts resolving both, gives IPv6 a small head start, and begins an IPv4 connection shortly afterwards without waiting for the IPv6 attempt to fail. Whichever connection completes first is used and the other is abandoned.

The reason this exists is a specific historical failure. In the years when IPv6 was patchily deployed, a machine with a broken IPv6 path would try it, wait for a long TCP timeout, and only then fall back — turning a working site into one that took thirty seconds to load. Racing the two protocols with a short delay made broken IPv6 cost milliseconds instead of half a minute, and it is the single change that made dual-stack deployment safe for ordinary users.

So if the test reports that your browser preferred IPv6, it means your IPv6 path was not merely present but fast enough to win a race. That is a stronger statement than "IPv6 is configured".

The addresses themselves

IPv6 notation looks intimidating and follows three simple rules: write eight groups of four hex digits, drop leading zeros in each group, and replace one run of all-zero groups with :: — once per address, because a second one would be ambiguous. So 2001:0db8:0000:0000:0000:0000:0000:0001 is written 2001:db8::1.

Global unicast — anything starting 2 or 3
A real, internet-routable address. This is what the test shows you.
Link-local — fe80::
Every IPv6 interface has one and it never leaves the local segment. If this is the only IPv6 address your machine has, you do not have working IPv6 — you have an interface that configured itself.
Unique local — fc00::/7
The rough equivalent of private IPv4 space, for internal networks that should not be reachable from outside.

One thing that surprises people: your IPv6 address changes by itself, often daily. Because an address derived from the network card's hardware identifier would follow you across every network you join, operating systems generate temporary addresses for outgoing connections and rotate them. This is a privacy feature working as designed, not a misconfiguration — but it does mean that an IPv6 address you noted yesterday is probably no longer yours, and that firewall rules should be written against prefixes rather than individual addresses.

No NAT, which cuts both ways

On IPv4 behind a home router, your devices are unreachable from outside because nothing can be addressed through the translation without an explicit forwarding rule. That accident of address scarcity has functioned as a crude firewall for two decades, and it is absent on IPv6: every device holds a globally routable address.

This is the point at which the firewall becomes load-bearing rather than incidental. Every sensible router ships with the IPv6 firewall enabled and blocking unsolicited inbound connections by default, so in practice nothing is exposed that was not exposed before — but it is now a policy decision rather than a side effect, and it is worth confirming rather than assuming. If you want to see what is actually reachable from outside, that is what a port check answers, and it answers it for the address you actually arrived on.

If you do not have IPv6

In descending order of how likely each is to be the reason:

  1. Your provider does not offer it. The most common answer by a wide margin, and there is nothing to configure. Ask; some enable it on request or on newer plans.
  2. Your router has it disabled, or is old enough not to support it properly. Check the WAN settings for IPv6 and for a prefix delegation size — providers hand out a /56 or /48, and a router that only requests a single /64 will leave parts of a network unaddressed.
  3. A VPN is in the way. Many VPN clients carry IPv4 only and either block IPv6 outright or, worse, let it bypass the tunnel — which is one of the ways a VPN leaks your real address while appearing to work.
  4. The network you are on filters it, which is common on corporate and public networks.

Not having it costs you very little today; almost nothing on the public internet is IPv6-only, precisely because operators know how many people are still IPv4-only. What it does cost you is sharing a public address with strangers, and with it the ability to accept incoming connections — and if you want to know what else your connection reveals while you are here, the browser page lists it without the theatrics the topic usually attracts.

Frequently asked questions

I have no IPv6. Is that a problem?

For everyday use, almost none. Practically nothing on the public internet is reachable only over IPv6, precisely because operators know how many people are still IPv4-only. What it does cost you is that your provider is probably sharing one public address between many customers, which means incoming connections cannot reach you at all — no port forwarding, no self-hosting, and trouble with some peer-to-peer applications.

Why can a website not just tell me whether I have IPv6?

Because a server sees only the address you connected from. If you arrived over IPv4, the connection contains no information whatsoever about whether IPv6 also works for you. The only way to find out is to make the browser attempt a connection to a host that has an IPv6 address and nothing else, which is exactly what this page does.

Why does my IPv6 address keep changing?

Because it is meant to. An address derived from your network card's hardware identifier would be a permanent tracking token that followed you onto every network you joined, so operating systems generate temporary addresses for outgoing connections and rotate them, typically daily. Your network keeps its prefix; the last half of the address is deliberately disposable. Write firewall rules against the prefix, not against an individual address.

My browser chose IPv6 even though IPv4 also works. Why?

Modern browsers use an algorithm called Happy Eyeballs: they start both connections, give IPv6 a small head start, and use whichever completes first. It exists because in the early years a broken IPv6 path made sites hang for thirty seconds before falling back. Racing the two means a broken path costs milliseconds instead — and it means that if IPv6 won, your IPv6 route was genuinely the faster one.

Is IPv6 less secure because there is no NAT?

No, but the protection moves from an accident to a decision. On IPv4 your devices were unreachable because address translation had nowhere to send unsolicited traffic; on IPv6 each device has a routable address and the router firewall is what blocks unsolicited inbound connections instead. Every sensible router does this by default, so the practical exposure is unchanged — it is just worth confirming rather than assuming.

My address starts with fe80. Does that count as IPv6?

Not for reaching the internet. Addresses starting fe80 are link-local: every IPv6 interface configures one for itself and it never leaves the local network segment. If that is the only IPv6 address your machine holds, you have an interface that configured itself and no connectivity — the router is not delegating a real prefix.

My VPN is on and IPv6 stopped working. Is that expected?

Very often, yes. Many VPN clients carry IPv4 only and block IPv6 to prevent it bypassing the tunnel. That is the safe behaviour. The unsafe one is a client that leaves IPv6 running outside the tunnel, in which case some of your traffic reaches sites over your real address while the VPN appears to be working — one of the classic ways a VPN leaks.

How do I get IPv6 if I want it?

Start with your provider, since that is the answer in most cases and there is nothing you can configure around it. If they do carry it, check that your router has IPv6 enabled on the WAN side and requests a prefix of the size they delegate — usually a /56 or /48. A router that only asks for a single /64 will leave parts of your network without addresses even though the provider is offering plenty.

Related checks