meuip.rs
Um endereço, duas respostas
Chame com curl meuip.rs e você recebe o endereço puro e uma quebra de linha — pronto para ler, sem nada para limpar. Abra a mesma url no navegador e você recebe a página: o endereço em corpo grande, quem é o seu provedor, onde a rota te coloca e os comandos para fazer tudo isso pelo terminal.
A ideia é essa. Um "qual é o meu IP" que um script consegue usar é um serviço diferente de um que uma pessoa consegue ler, e a maioria dos sites obriga a escolher. Este lê o cabeçalho Accept e responde a pergunta no formato que quem perguntou consegue aproveitar.
Pelo terminal
$ curl meuip.rs
170.233.230.254
$ curl meuip.rs/asn
AS265198
$ curl -s meuip.rs/all | jq .isp
"BLUE3 TELECOM"
Sem chave, sem conta, sem dança de rate limit. A saída é uma linha só, então vai direto para uma variável.
Endpoints
| Rota | O que responde |
|---|---|
| meuip.rs | Seu endereço público — texto puro para um cliente, a página inteira para um navegador. |
| meuip.rs/ip | Só o endereço, sempre como texto. |
| meuip.rs/asn | O sistema autônomo por onde a sua rota sai. |
| meuip.rs/isp | O provedor que anuncia aquele AS. |
| meuip.rs/country | Código do país. |
| meuip.rs/region | Estado ou região. |
| meuip.rs/coord | Latitude e longitude — na página, um link para o mapa. |
| meuip.rs/all | Tudo o que está acima num único objeto JSON. |
| meuip.rs/trace | Traceroute: a rota até o seu próprio endereço, ou até um host que você indicar. |
| meuip.rs/doc | A documentação, o mesmo conteúdo nos dois formatos. |
Um traceroute que roda no servidor, não na sua máquina
Rede corporativa bloqueia ICMP, e um traceroute rodado de dentro de uma conta sobre aquela rede, não sobre a rota. O /trace executa os saltos a partir do servidor e manda cada um para a página assim que ele volta — sem esperar a execução inteira terminar — e mantém a rota aberta numa leitura contínua no estilo do mtr quando você pede.
Responde nos dois formatos, como todo o resto: navegador recebe a página ao vivo, curl recebe a rota em texto.
O que ele não faz
Sem conta
Não há cadastro e não há login. Também não há plano pago que libere os outros endpoints.
Sem chave de API
Os endpoints são abertos. A consulta de geolocalização por trás deles fica em cache no servidor, então um laço de curl não vira fatura.
Sem cookie
A página não grava nenhum. O tema que você escolhe fica no localStorage, no seu próprio navegador, e nunca sai de lá.
Sem exigir JavaScript
A página é montada no servidor e se lê igual com script desligado — quem precisa dele são os botões de copiar e o trace ao vivo.
Feito e mantido pela Blue3, em PHP sem framework: um front controller, prepared statements e a consulta de geolocalização por cURL nativo, com timeout e cache. A reescrita da v2.0 foi o que substituiu o shell_exec("curl …") do original.
O que mudou
Os lançamentos mais recentes, tirados do changelog do próprio projeto.
-
v0.2.10 atual
- O diretório .git exposto foi fechado, e o código da v1 que ainda executava em produção ao lado da reescrita saiu de lá.
-
v0.2.0
- A página ganha tema escuro que não pisca ao carregar, endereço copiável com selo de IPv4/IPv6, chips de contexto, botão de copiar em cada comando curl e coordenadas que abrem um mapa.
- O foco do teclado volta a ser visível, e a animação respeita um sistema que pede menos dela.
- Aferido contra a produção, endpoint por endpoint: a API de texto puro responde exatamente como antes. Uma passada visual que mudasse o que o curl devolve teria quebrado o propósito do serviço.