What Is My IP Address
The address this server sees your request coming from, with reverse DNS, and the forwarding headers shown separately because a client can set those itself.
This tool needs JavaScript: it asks the server what address your request came from.
This is one of the few tools here that asks the server rather than your browser, because a browser cannot do it. Nothing you put in is stored; the request is rate limited by address and the answer is not cached.
Your address, as this server sees it. Not as a header claims it is: the number below is the source of the connection that carried your request, which is the only one the server can be sure of.
That distinction is the whole tool. Every “what is my IP” page reads X-Forwarded-For when it is there,
and that header is set by whatever is in front of the site. On a site with nothing in front, it is set
by whoever asked. Reporting it as your address is reporting a value the visitor chose.
How to use
Open the page. There is nothing to fill in: the lookup happens on arrival, because asking somebody to press a button to be told their own address is asking for nothing.
Tick the box to see the forwarding headers next to the connection address. That comparison is the useful part when you are debugging a proxy, a CDN or a load balancer.
Example
Your address 203.0.113.7
Family IPv4
Reverse DNS host-203-0-113-7.example.net
What this actually is
seen by this server, as the source of the connection
not read from X-Forwarded-For or any other header a client can set
With the headers shown, a request through a CDN looks like this:
Forwarding headers, for comparison
x-forwarded-for 198.51.100.22 ← client-set, do not trust it
cf-connecting-ip 198.51.100.22 ← client-set, do not trust it
Both of those are the visitor’s real address when your CDN set them, and both are whatever somebody typed when it did not.
Pitfalls
An address identifies a connection, not a person. It changes when you move network, it is shared by everyone behind the same router, and on a mobile network it can be shared by thousands of people at once through carrier-grade NAT.
Never trust a forwarding header at face value. If you use one for rate limiting or for blocking,
anybody can send X-Forwarded-For: 1.2.3.4 and wear somebody else’s reputation, or clear your
counters. Only trust the header when the request came from a proxy you control, and take the right
position in the list rather than the first one.
Geolocation from an address is a guess. City-level accuracy is common, street-level is not, and a corporate or mobile address often geolocates to wherever the operator’s equipment is rather than where you are.
A VPN moves the guess, it does not remove it. The site still sees an address; it is the VPN’s. Everything else that identifies a browser — fonts, screen size, timezone, cookies — is unchanged.
IPv6 addresses are per-device, and often per-hour. Privacy extensions rotate the last half of the address, so blocking or allowing a single IPv6 address rarely does what you meant. Work on the /64.
Your local address is not this one. 192.168.x.x is what your router gave you; the address here is what your router presents to the world. Both are yours, in different senses.
Compatibility
This is one of the handful of tools on this site that asks the server, because the address a request came from is the one thing a browser cannot see about itself.
The value is REMOTE_ADDR, the source of the TCP connection as the web server reports it. Proxy headers
are read only when you ask to see them, and they are labelled as client-set when they are shown.
The endpoint is rate limited by address, 20 lookups a minute, with the counter keyed by a salted hash
rather than the address itself: a rate-limit counter should not become a list of who visited. Nothing is
logged by the tool and the response is sent with Cache-Control: no-store, since an answer that depends
on who asked must never be cached by anything in between.