What is my IPv4 address?
This page answers one narrow question: did you reach this server over IPv4 or IPv6. Most connections still prefer IPv6 when both ends support it, so an empty IPv4 result here is normal and not a fault. The address format is the giveaway: four numbers with dots is IPv4, groups of hex separated by colons is IPv6.
Your public IPv4 address is shown above, if your connection has one. IPv4 is the original internet addressing scheme, written as four numbers from 0 to 255 separated by dots, like 198.51.100.7. It has been the backbone of the internet since the 1980s.
There are only about 4.3 billion IPv4 addresses, which the world ran out of years ago. That scarcity is why providers share a single public IPv4 among many customers using carrier-grade NAT, and why IPv6, with a vastly larger pool, was created.
If nothing appears above, your connection may be IPv6-only, or your provider may route you through shared IPv4. Either way, the address shown is what an IPv4 server sees when you connect.
How a website reads this
This is the exact call a page makes. Nothing else is involved, and nothing is sent anywhere: the value is read in your browser and displayed to you.
fetch('/api/ip') then check for ':' in the addressThe same echo endpoint. Whether it returns a 32-bit IPv4 address or a 128-bit IPv6 one is decided by your device, your network and the server, not by the page. A colon in the result means you arrived over IPv6.
- Needs your permission
- No, it is read silently
- Can it be faked
- Partly. Same as the IP address. Disabling IPv6 on your device or network will force IPv4, which is a configuration change rather than a spoof.
- Contribution to a fingerprint
- Not counted. Not part of the fingerprint estimate: this is the same signal as the IP address, viewed through one filter. How we estimate this.
IPv4 against IPv6, side by side
The two are not versions of the same thing in the way software versions are. They are separate protocols that do not interoperate, which is why the transition has taken decades.
| IPv4 | IPv6 | |
|---|---|---|
| Address length | 32 bits | 128 bits |
| Written as | Four decimal numbers separated by dots, such as 203.0.113.10 | Eight groups of hexadecimal separated by colons, with runs of zeros collapsed to :: |
| How many addresses | About 4.3 billion, which ran out | 340 undecillion, which will not |
| Address sharing | Ubiquitous. NAT at home, carrier-grade NAT on mobile | Rarely needed. Devices can hold globally routable addresses |
| Who assigns yours | Your provider gives one to your router, which hands out private addresses internally | Your provider delegates a whole prefix, and your devices configure themselves within it |
| When you get which | When either end lacks IPv6, or the network prefers it | When both your connection and the server support it, which browsers then prefer |
| What a site sees | One address for your whole household | Often a per-device address, which is a privacy consideration of its own |
That last row deserves attention. Because IPv6 gives devices their own routable addresses, the household-level anonymity that NAT provided by accident goes away. Privacy extensions, which rotate the device portion of the address periodically, exist to counter exactly that.
Why do I have no IPv4 address?
Because you arrived over IPv6, and there is no reason for the server to have seen an IPv4 address at all. When both your connection and the destination support IPv6, browsers prefer it. The mechanism is described in RFC 8305, commonly called Happy Eyeballs: the client starts both connections, slightly favouring IPv6, and uses whichever answers first.
So an empty IPv4 result here is not a fault or a misconfiguration. It means your connection is modern and the server supports it. If you want to see your IPv4 address, disabling IPv6 on your device or router will force the fallback, though there is rarely a good reason to.
The reverse case, an IPv4 address and no IPv6, is still extremely common. Plenty of consumer connections have never been given IPv6 at all.
How to tell at a glance which one you are looking at
Dots mean IPv4, colons mean IPv6. That is the whole test, and it is why this page keys off a colon in the address.
One shape catches people out: an address like ::ffff:203.0.113.10 is an IPv4-mapped IPv6 address, which is an IPv4 address wearing IPv6 notation. It turns up in server logs when software handles both protocols through one IPv6 socket, and it means the connection really was IPv4.
What you should know
Why sites collect it
Servers need an IPv4 address to reply to you over the older internet. Sites log it for the same reasons as any IP: rough location, rate limiting, fraud checks and access control.
Privacy implications
An IPv4 address that is shared across many users (via carrier-grade NAT) is less identifying than a dedicated one, but it still maps to a provider and region. It is logged widely, so treat it as semi-public.
How to change or hide it
A VPN or Tor replaces your visible IPv4 with theirs. If your provider gives you a dynamic address, reconnecting can rotate it. You generally cannot pick your own IPv4 on a consumer connection.
Frequently asked questions
What is the difference between IPv4 and IPv6?
IPv4 uses four numbers and has a limited address space that ran out; IPv6 uses a much longer format with an enormous address space. Both can identify your connection to a server.
Why do I have no IPv4 address?
Some modern connections are IPv6-only or place you behind shared IPv4. In that case a pure IPv4 lookup may return nothing while IPv6 works.
Sources
Browser behaviour changes and vendors cap these values differently, so the claims above that are not self-evident are checked against the specifications and vendor documentation below.
Last checked on . How these values are measured and estimated is set out on the methodology page.
Something wrong here? Tell us what your browser reports and it gets corrected.