В следващата статия ще разгледаме как можем вземете географското местоположение на нашия публичен IP адрес. Ще можем да направим това чрез отворени API и прост bash скрипт, всички от терминала на Ubuntu. Днес всички устройства, свързани към интернет, имат IP, който е техният идентификатор за света. Този адрес ще използваме за получаване на вашето местоположение.
Когато сърфираме в интернет, всеки сървър има публичен IP адрес, това се присвоява директно на сървъра или чрез рутер, който изпраща мрежов трафик към този сървър. IP адресите осигуряват лесен начин за проследяване на географското местоположение на сървъра в света. Това може да се постигне чрез използване на два API, предоставени от ipinfo.io e ipvigilante.com с които ще можем да получим държавата на сървъра, името на града и неговите географски координати.
В следващите редове ще видим как Вземи географско местоположение на ИП от терминала, който ни помага с curl и jq. Основната цел и употреба за къдрица е да автоматизирате прехвърляне на файлове или неконтролирани последователности от операции, докато jq е функционален език на много високо ниво с поддръжка за проследяване и управление на потоци от данни JSON.
Географско местоположение на IP от терминала
Инсталирайте Curl и jq
За да получим географското местоположение на IP адреса, ще трябва инсталирайте curl и jq инструмент за команден ред за обработка на JSON данните, получени от API за геолокация. За да инсталирате и двете, в терминал (Ctrl + Alt + T) ще трябва да напишете командата:
sudo apt install curl jq
Получете публичния IP адрес на сървъра
Преди да получите местоположението, трябва знаем публичния IP адрес на сървъра, към който се свързваме. За целта ще използваме следната команда cURL, с която ще отправим заявка до ipinfo.io от терминала (Ctrl + Alt + T), както е показано по-долу:
curl https://ipinfo.io/ip
Получете данните за географското местоположение на IP на вашата система благодарение на API
След изпълнението на предишната команда ще получим публичния IP адрес. След като го имаме, ще можем направете заявка до ipvigilante.com за получаване на данни за геолокация. За това ще използваме следната команда в терминала (Ctrl + Alt + T). Важно е да замените публичния IP с този, получен с предишната команда.
curl https://ipvigilante.com/la-dirección-IP
Автоматизирайте API извикването с помощта на Bash Script
За да автоматизираме процеса на комуникация с API, ще отидем създайте скрипт във файл, наречен ipgeolocator.sh (името не е задължително). За създаването му ще можем да използваме всеки редактор за командния ред, с който всеки се чувства най-удобно.
vim ipgeolocalizador.sh
Когато редакторът се отвори, вътре просто трябва поставете реда показано по-долу:
curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
Веднъж поставен, всичко, което трябва да направите, е да запишете файла и да излезете от редактора. След това ще е необходимо направете скрипта изпълним. Ще направим това, като напишем в същия терминал:
chmod +x ipgeolocalizador.sh
На този етап можем стартирайте скрипта, както следва, за да получите географското местоположение на IP обществен:
./ipgeolocalizador.sh
Горният скрипт показва името на града и държавата заедно с приблизителните координати на географска ширина и дължина. Истината е, че Не знам допустимата грешка, която може да има.
Ако не искате да запишете горната дълга команда във файл, можете също да изпълните същата команда директно в терминала (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'
В тази кратка статия видяхме как вземете геолокация на IP от Ubuntu с помощта на терминални и curl и jq команди. Можете да получите повече информация за jq или за къдрица в съответните им статии в Уикипедия.