Obtenha informações de geolocalização do endereço IP no Bash no Linux
Às vezes, você precisa obter as informações de geolocalização de um endereço IP rapidamente. No Linux, você pode usar o poder dos aplicativos de console para economizar seu tempo e recuperar essas informações rapidamente. Vamos ver como isso pode ser feito.
Propaganda
Para obter as informações de localização geográfica sobre um endereço IP específico, você precisa usar algum serviço online que forneça a API apropriada. É uma boa ideia usar algum serviço público para evitar o procedimento de autorização e o gerenciamento de chaves de API. Um desses serviços é FreeGeoIP.net.
Ele fornece uma API HTTP pública para pesquisar a geolocalização de endereços IP. Ele usa um banco de dados de endereços IP associados a cidades, juntamente com outras informações relevantes, como fuso horário, latitude e longitude. Isso é muito útil.
O serviço pode fornecer resultados de pesquisa como JSON ou XML. Portanto, se combinarmos curl com algum analisador JSON, podemos obter as informações necessárias.
Vou usar meu analisador JSON favorito, jq:
É muito leve e rápido.
Para nosso caso, a consulta deve ser a seguinte:
http://freegeoip.net/json/119.94.116.145
A parte "json" aqui é o formato de dados desejado. Além de JSON, pode ser XML ou CSV.
Vamos executar a consulta com curl e ver o resultado:
O resultado é uma saída JSON bruta que é difícil de ler. Para melhorar a aparência do conjunto de resultados, vamos usar a ferramenta jq. Combine-o com curl da seguinte forma:
ondulação http://freegeoip.net/json/119.94.116.145|jq
A saída será mais fácil de ler:
Usando jq, você pode filtrar a saída e fazê-la mostrar apenas os campos obrigatórios. O seguinte comando exibirá apenas o nome do país, latitude e longitude:
ondulação http://freegeoip.net/json/119.94.116.145|jq -r '.country_name, .latitude, .longitude'
Você pode salvar este comando como o seguinte script de shell:
#! / bin / sh. curl -s http://freegeoip.net/json/$1|jq -r '.country_name, .latitude, .longitude'
Na próxima vez que precisar obter informações de geolocalização, você pode executar seu script desta forma:
./geo.sh endereço_IP
É isso.