meuip.rs
One address, two answers
Ask curl meuip.rs and you get the bare address and a newline — parseable, with nothing to strip. Open the same url in a browser and you get the page: the address in large type, who your provider is, where the route puts you, and the commands to do it all from the terminal.
That is the whole idea. A "what is my IP" that a script can use is a different service from one a person can read, and most sites make you pick. This one reads the Accept header and answers the question in the shape the caller can actually use.
From the terminal
$ curl meuip.rs
170.233.230.254
$ curl meuip.rs/asn
AS265198
$ curl -s meuip.rs/all | jq .isp
"BLUE3 TELECOM"
No key, no account, no rate-limit dance. The output is one line, so it goes straight into a variable.
Endpoints
| Route | What it answers |
|---|---|
| meuip.rs | Your public address — plain text for a client, the full page for a browser. |
| meuip.rs/ip | The address on its own, always as text. |
| meuip.rs/asn | The autonomous system your route comes out of. |
| meuip.rs/isp | The provider that announces that AS. |
| meuip.rs/country | Country code. |
| meuip.rs/region | State or region. |
| meuip.rs/coord | Latitude and longitude — on the page, a link to the map. |
| meuip.rs/all | Everything above in one JSON object. |
| meuip.rs/trace | Traceroute: the route to your own address, or to a host you name. |
| meuip.rs/doc | The documentation, same content in both shapes. |
A traceroute that runs on the server, not on your machine
Corporate networks block ICMP, and a traceroute run from inside one tells you about that network, not about the route. /trace runs the hops from the server and streams them to the page as they come back — no waiting for the whole run to finish — and holds the route open in a continuous mtr-style reading when you ask it to.
It answers in both shapes like everything else: a browser gets the live page, curl gets the plain route.
What it does not do
No account
Nothing to sign up for and nothing to log in to. There is no paid tier that unlocks the other endpoints.
No API key
The endpoints are open. The geo lookup behind them is cached on the server, so a loop over curl does not become a bill.
No cookie
The page sets none. The theme you choose is kept in localStorage, in your own browser, and never travels.
No JavaScript required
The page is rendered on the server and reads the same with scripting off — the copy buttons and the live trace are what need it.
Built and run by Blue3, in PHP with no framework: a front controller, prepared statements, and a geo lookup over native cURL with a timeout and a cache. The v2.0 rewrite is what replaced the shell_exec("curl …") of the original.
What changed
The most recent releases, taken from the project's own changelog.
-
v0.2.10 current
- The exposed .git directory is closed, and the v1 code that was still executing in production alongside the rewrite is gone.
-
v0.2.0
- The page gets a dark theme that does not flash on load, a copyable address with an IPv4/IPv6 badge, context chips, a copy button on every curl command, and coordinates that open a map.
- Keyboard focus is visible again, and animation honours a system that asks for less of it.
- Measured against production, endpoint by endpoint: the plain-text API answers exactly as before. A visual pass that changed what curl returns would have broken the point of the service.