
your public ip is not anonymous
curl -s ipinfo.io | jq '{city,region,org}'your public ip is basically a name tag
you probably think of your ip address as some random string of numbers that means nothing to anyone. it does not feel personal. no name attached, no face, just digits. but that string can tell a stranger what city you're in, who your isp is, and sometimes even the building your traffic is bouncing out of. one command proves it in under a second.
curl -s ipinfo.io | jq '{city,region,org}'
try it right now. copy it into your terminal and see what comes back. i'll wait.
breaking down the command
curl -s ipinfo.io sends a request to ipinfo.io's api. that service looks at the ip address your request is coming from (your public ip, the one your router shows the internet, not your local 192.168.x.x address) and returns a json blob with details about it: city, region, country, coordinates, your isp or hosting org, sometimes even a hostname. the -s flag just means "silent," so curl doesn't clutter the output with progress bars.
jq '{city,region,org}' takes that raw json and filters it down to just three fields so you're not scrolling through a wall of text. it's a formatting tool, nothing fancier than that. you could just as easily ask for the full response and read all of it.
the important part isn't the syntax, it's what the output represents: this is what every website, every server, every app you connect to can see about you without you clicking anything or logging into anything. it's baked into how tcp/ip works. your request has to carry a return address or nothing gets sent back to you.
why this actually matters
most people assume "anonymous" means "no name attached." but location data plus network data is enough to build a profile. an attacker running a phishing campaign, a scraper harvesting analytics, or a malicious ad script can use this same lookup to figure out roughly where you are and what network you're on before they even try anything else. it's recon, and it's free, and it takes them one line of code same as it took you.
if you're a defender, this is also your first diagnostic step when something looks off. is your vpn actually routing traffic where you think it is? is that "residential" ip actually flagged as a data center range? running this command tells you exactly what the outside world sees, which is the whole point of checking it.
what your ip does not tell someone
it's worth being precise here so you don't over-worry or under-worry. your ip alone usually doesn't reveal your exact home address, your name, or your identity directly. what it gives away is approximate geographic location (often city-level, sometimes wildly off), your isp or hosting provider, and enough of a fingerprint to correlate your activity across sessions if nobody's rotating it. combined with other leaks, like a real name in a browser profile or a reused username, it stops being "just a number" pretty fast.
the takeaway
run that command on your own connection. run it again with a vpn on and compare. run it on your phone's cellular connection versus your home wifi. you'll start to see patterns: which networks leak your real org name, which ones show up as generic hosting providers, which ones expose your isp outright.
to actually protect yourself: use a reputable vpn if you want to mask your public ip, check that it isn't leaking your real address through dns or webrtc, and treat "my ip is hidden" as a claim to verify, not a fact to assume. for home networks, don't expose services directly to the internet if you don't have to, put them behind a vpn or reverse proxy with proper access controls. and if you're running a homelab or self-hosting anything, run this same lookup on that box specifically, because that's the ip that shows up in every log a stranger might be reading.
knowing what's visible is step one of defense. you can't fix a leak you've never bothered to check for.