About this tool
What this tool sends, and what comes back
This is the one tool on this site that needs a server. A web page cannot see its own public address: only the other end of a connection can. When the page opens, it sends a single request to /api/ip on this site, and the server answers with what that request itself carried: the address it came from, the HTTP version, and the User-Agent and Accept-Language headers. The HTTP version is the one the request had when it reached the application, and a reverse proxy in front of the application can use a different version from the one your browser used.
The application does not log or store these values. It reads them, sends them back and forgets them. This site is served through a reverse proxy, and a proxy can keep an access log of the requests it handles, addresses included, as web servers commonly do. The tool does not look the address up anywhere, so this page shows no location, no provider name and no host name.
Public and private addresses, and NAT
On an IPv4 network, the address in your device's network settings is usually a private one, such as 192.168.1.20 or 10.0.0.5. The same private ranges are reused in homes and offices everywhere and are not routed on the internet. Your router holds the public address and rewrites each outgoing packet to carry it, which is called network address translation, or NAT. Every device behind the same router therefore appears on the internet with the same public address, and that is the one shown here.
Many mobile and some fixed-line providers add a second layer, carrier-grade NAT, and share one public address among many customers. In that case the address you see belongs to the provider's equipment, and other people use it at the same time.
IPv6 usually works without NAT. Each device has its own global address, so over IPv6 this page shows the address of the device itself, and two devices on the same network get different results.
Why a VPN or a proxy changes the result
A server sees the address of the machine that opened the connection to it. With a VPN or a proxy, that machine is the VPN or proxy server, so this page shows its address and not the one your provider gave you. Turning the VPN off and checking again shows the difference.
One request travels over either IPv4 or IPv6, never both. If your network and the server both support IPv6, the browser normally prefers it, and the page then shows an IPv6 address even though you also have an IPv4 one.