No próximo artigo, vamos dar uma olhada em como podemos obter a localização geográfica do nosso endereço IP público. Poderemos fazer isso por meio de APIs abertas e um script bash simples, tudo a partir do terminal Ubuntu. Hoje todos os dispositivos conectados à Internet possuem um IP, que tem sido seu identificador para o mundo. Este é o endereço que usaremos para obter sua localização.
Quando navegamos na Internet, cada servidor tem um endereço IP público, isso é atribuído diretamente ao servidor ou por meio de um roteador que envia o tráfego de rede a esse servidor. Os endereços IP fornecem uma maneira fácil de rastrear a localização geográfica do servidor no mundo. Isso pode ser alcançado fazendo uso de duas APIs fornecidas por ipinfo.io e ipvigilante. com com o qual poderemos obter o país do servidor, o nome da cidade e suas coordenadas geográficas.
Nas linhas a seguir, veremos como pegue o localização geográfica de um IP do terminal nos ajudando com curl e jq. O principal objetivo e uso para cURL é automatizar as transferências de arquivos ou sequências de operações não supervisionadas, enquanto jq é uma linguagem funcional de alto nível com suporte para backtracking e gerenciamento de fluxos de dados JSON.
Localização geográfica de um IP do terminal
Instale Curl e jq
Para obter a localização geográfica do endereço IP, teremos que instalar onda e a ferramenta de linha de comando jq para processar os dados JSON obtidos das APIs de geolocalização. Para instalar ambos, em um terminal (Ctrl + Alt + T) você terá que escrever o comando:
sudo apt install curl jq
Obtenha o endereço IP público do servidor
Antes de obter a localização, você precisa saber o endereço IP público do servidor ao qual nos conectamos. Para isso, usaremos o seguinte comando cURL com o qual faremos uma solicitação para ipinfo.io do terminal (Ctrl + Alt + T) conforme mostrado abaixo:
curl https://ipinfo.io/ip
Obtenha os dados da localização geográfica do IP do seu sistema graças à API
Depois de executar o comando anterior, obteremos o endereço IP público. Assim que tivermos, seremos capazes de faça um pedido a ipvigilante.com para obter dados de geolocalização. Para isso, usaremos o seguinte comando no terminal (Ctrl + Alt + T). É importante substituir o IP público pelo obtido com o comando anterior.
curl https://ipvigilante.com/la-dirección-IP
Automatize a chamada de API usando Bash Script
Para automatizar o processo de comunicação com a API, vamos crie um script dentro de um arquivo chamado ipgeolocator.sh (o nome é opcional) Para sua criação poderemos utilizar qualquer editor de linha de comando com o qual cada um se sinta mais confortável.
vim ipgeolocalizador.sh
Quando o editor abre, você só precisa cole a linha mostrado abaixo:
curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
Uma vez colado, tudo que você precisa fazer é salvar o arquivo e sair do editor. Depois disso será necessário tornar o script executável. Faremos isso escrevendo no mesmo terminal:
chmod +x ipgeolocalizador.sh
Neste ponto, podemos execute o script da seguinte forma para obter a localização geográfica do IP público:
./ipgeolocalizador.sh
O script acima exibe o nome da cidade e do país junto com as coordenadas aproximadas de latitude e longitude. A verdade é que Eu não sei a margem de erro que pode ter.
Se você não quiser salvar o comando longo acima dentro de um arquivo, você também pode executar o mesmo comando diretamente no terminal (Ctrl + Alt + T):
curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
Neste breve artigo, vimos como obter geolocalização de um IP do Ubuntu usando o terminal e os comandos curl e jq. Você pode obter mais informações sobre jq ou sobre cURL em seus artigos correspondentes da Wikipedia.