dev101.io

What's My IP?

See your public IP address, user agent, and connection details — instantly, no tracking.

Loading tool…

How to use What's My IP?

  1. Open the page — your IP and connection details load automatically.
  2. Hit "Refresh" to re-check (useful after switching VPN regions).
  3. Click "Copy" to copy the IP to your clipboard.

What's My IP?

Shows the public IP our server saw when you opened this page — plus your user agent, accept-language, and whether the request arrived via any forwarding proxies.

Under the hood

A single /api/myip GET request hits our Node server, which reads the standard proxy headers (X-Forwarded-For first, falling back to X-Real-IP, then CF-Connecting-IP), assembles a JSON response, and returns. No database, no third-party lookup, no geolocation scrape.

What you'll see

  • Public IP — what the internet thinks you are. Copy-friendly.
  • Type — IPv4 or IPv6, based on the address format.
  • Host we saw — the hostname you used to reach us (useful if you're testing multi-domain routing).
  • User agent — the browser/OS string your client sent.
  • Forwarded chain — if multiple proxies touched the request, you'll see the hops.

Privacy

Zero persistent storage. The request reads headers we already had to see, returns them, and forgets. No analytics scripts, no third-party fonts, no trackers on the page.

Related

  • Is My Website Alive? — server-side uptime check with SSL expiry
  • DNS Lookup — resolve any hostname to A/AAAA/MX/TXT records
  • User Agent parser — decode a UA string into browser/OS/device

Frequently asked questions

Where does the IP come from?

Our server reads the `X-Forwarded-For` / `X-Real-IP` header that our own reverse proxy sets on your request. No third-party API, no geolocation lookup against an external service, no account required. If you browse through a VPN or corporate proxy, you'll see that exit IP — not your device's LAN IP.

Is the IP logged?

No. The `/api/myip` route has zero persistent storage — it reads the headers we already had to see to route your request, assembles a JSON response, and forgets. No request log written to disk by our app. (Infrastructure-level logs — like nginx access logs — exist briefly for debugging and rotate within days.)

Why does it show a different IP than my router says?

Your router shows your LAN IP (usually 192.168.x.x or 10.x.x.x). Those are private addresses — the public internet never sees them. What you see here is the public-facing IP your ISP assigned to your network. Everyone in your household looks like the same IP from the outside.

Why is the country / city field empty?

Those fields only populate when the request passes through Cloudflare, which injects `cf-ipcountry` / `cf-ipcity` headers. Our deploy doesn't sit behind Cloudflare right now, so those fields stay null. You can still eyeball the IP with any public geolocation database — we just don't embed one to avoid third-party calls.

Related tools