Skip to content

What's My IP

Your public IP address is the address the rest of the internet sees when traffic leaves your network. This page reports the address our server actually observed on your request, which header carried it, and every request header your browser sent — with no location guessing.

What this page is actually showing you

When your browser connects to this site, the packets carry a source address. That address is rewritten at least once on the way here — by your router doing NAT, often again by your ISP, and finally by the reverse proxy in front of this application. What we report is the address at the last point where it was still attributable to you: the left-most entry of the X-Forwarded-For header, falling back to X-Real-IP or CF-Connecting-IP when the proxy in front of us sets only one of those.

This is why the address here almost never matches what ipconfig or ip addr prints on your machine. Those commands show the private address your router handed you — usually something in 192.168.0.0/16 or 10.0.0.0/8. That address is not routable on the public internet and cannot be reached from outside your network. Use the subnet calculator if you want to see exactly which private block your LAN address belongs to.

IPv4 vs IPv6: why the answer sometimes changes

If your connection has working IPv6 and your browser prefers it, you will see a long hexadecimal address like 2606:4700:4700::1111 rather than four dotted numbers. Reload on a network without IPv6 and the same browser reports an IPv4 address. Neither is wrong — you genuinely have both, and which one is used depends on Happy Eyeballs (RFC 8305), the algorithm browsers use to race an IPv6 and an IPv4 connection and keep whichever answers first.

This matters for diagnostics more than people expect. A firewall rule, an SPF record, or an allow-list written only for IPv4 will quietly fail the moment traffic switches to IPv6. If you are allow-listing your office address on a server, capture both families and add both.

Read the full explanation of what's my ip results ↓

Why we do not show a location

Every "IP geolocation" result is an inference, not a measurement. The good databases are commercial, licensed, and updated constantly; the free ones are frequently years stale. Even the accurate ones locate the *network*, not the person: a residential address often resolves to the ISP's regional aggregation point tens or hundreds of kilometres away, mobile carriers can place you in a different state, and anyone behind a VPN or corporate egress gateway will geolocate to the exit node.

This project uses no keyed or licensed APIs, so instead of publishing a guess we return an explicit "not determined". If you need a real location for an address, the authoritative answer comes from the network operator — start with an ASN lookup to find who that is.

Reading the headers table

The headers panel shows the request as our server received it. A few are worth knowing:

  • X-Forwarded-For — a comma-separated chain, appended to by each proxy. The left-most entry is the original client; entries to the right are the proxies. Only trust it as far as you trust the proxies, because anything upstream can forge the left portion.
  • X-Real-IP — a single address set by nginx-style front ends. Simpler than XFF, but it loses the chain.
  • CF-Connecting-IP — Cloudflare's equivalent, present only when traffic passes through their network.
  • User-Agent — your browser and platform. Increasingly frozen and generic for privacy reasons; do not treat it as an identity.
  • Accept-Language — the languages your browser advertises. A far more reliable hint of locale than any IP-based guess.
  • Via and Forwarded — set by standards-compliant proxies (RFC 7239). Their presence tells you a proxy is in the path even when it hides its address.

Common situations and what they mean

What you seeMost likely causeWhat to do
Address starts with 100.64.–100.127.Carrier-grade NAT (RFC 6598). Your ISP is sharing one public address between many customers.You cannot port-forward. Ask your ISP for a public IPv4 address, or use IPv6 / a tunnel.
Address changes on every reloadA load-balanced VPN or corporate egress pool.Allow-list the whole egress range, not a single address.
Address differs from your server's outbound IPYou are testing from a laptop, not from the server.Run the CLI check below on the server itself.
No address detected at allA proxy is stripping X-Forwarded-For.Check the proxy config; the app cannot see past what it is given.
IPv6 address, but your firewall rule uses IPv4Happy Eyeballs picked IPv6.Duplicate every allow-list rule for both families.

The command-line equivalent

You do not need a website for this. The cleanest method asks a DNS resolver to tell you the address it saw your query come from — no HTTP, no third-party page, and it works on a headless server:

dig +short txt ch whoami.cloudflare @1.0.0.1
# "203.0.113.42"

# IPv6 answer specifically:
dig -6 +short txt ch whoami.cloudflare @2606:4700:4700::1111

# OpenDNS equivalent, where it is not filtered:
dig +short myip.opendns.com @resolver1.opendns.com
Ask Cloudflare's resolver which address your query came from

Run this on the machine whose address you actually care about. A very common support mistake is checking the address from a workstation and then allow-listing it for a mail server or cron job that egresses from an entirely different address.

Where to go next

Once you know the address, the useful follow-ups are: reverse DNS to see whether it has a PTR record (essential if it sends mail), ASN lookup to see which network announces it, and port checker to confirm which services are reachable on it from the outside.

Reverse DNS (PTR) Lookup
Hostname behind an IP — required for mail servers

Frequently asked questions

Why is the IP shown here different from the one in my router settings?
Your router shows two addresses: the private LAN address it hands your devices, and the WAN address your ISP assigned it. This page shows what the internet sees, which matches the WAN address only if there is no further NAT. If your ISP uses carrier-grade NAT, the router's WAN address will be a 100.64.0.0/10 address and will not match what appears here.
Does my IP address identify me personally?
It identifies a network connection, not a person. In many countries an IP is treated as personal data because the ISP can map it to a subscriber with their own logs, but from the outside all anyone learns is which network you are on and roughly where that network operates. Shared IPv4 addresses behind CGNAT are used by hundreds of subscribers at once.
My IP changes every few days. Can I stop that?
Most residential connections use dynamic addressing, and the address changes when the DHCP lease is renewed or the modem reconnects. Ask your ISP for a static IP (usually a business plan), or use dynamic DNS so a hostname tracks the changing address. If you run a mail server, a static address is effectively mandatory — you cannot maintain a stable PTR record on a dynamic one.
Why does a VPN change what this page reports?
A VPN sends all your traffic through its own server, which then makes the request on your behalf. Our server sees the VPN exit node's address, because that is genuinely the source of the packets that reached us. That is the point of a VPN; it is not a fault in the detection.
Can this page be wrong about my IP?
It can be incomplete if a proxy between you and this server strips or rewrites the forwarding headers, which is why we show which header the answer came from. It is never a guess — the value is read directly from the request. If no valid address appears in any of the forwarding headers, we say "not detected" rather than inventing one.
How do I find the public IP of a server rather than my laptop?
SSH to the server and run the dig command above there. That returns the address the server actually egresses from, which is what matters for firewall allow-lists, SPF records, and API IP restrictions. On a multi-homed host the outbound address can differ from the address the server listens on.
Is IPv6 safer or less private than IPv4?
Neither, but the failure modes differ. IPv4 behind NAT hides many devices behind one address; IPv6 typically gives each device a globally routable address, which is better for connectivity and can be worse for tracking. Modern operating systems mitigate this with privacy extensions (RFC 8981) that rotate the host portion of the address regularly.