V nasledujúcom článku sa pozrieme na to, ako môžeme získajte geografické umiestnenie našej verejnej adresy IP. Dokážeme to prostredníctvom otvorených rozhraní API a jednoduchého skriptu bash, všetko z terminálu Ubuntu. Dnes majú všetky zariadenia pripojené k internetu IP, ktoré bolo ich identifikátorom pre celý svet. Túto adresu použijeme na získanie vašej polohy.
Keď surfujeme na internete, každý server má verejnú IP adresu, je priradené priamo k serveru alebo cez smerovač, ktorý odosiela sieťový prenos na tento server. Adresy IP poskytujú jednoduchý spôsob sledovania geografickej polohy servera na svete. To sa dá dosiahnuť použitím dvoch API poskytovaných serverom ipinfo.io e ipvigilante.com s ktorými budeme môcť získať krajinu servera, názov mesta a jeho zemepisné súradnice.
V nasledujúcich riadkoch uvidíme ako dostať geografické umiestnenie IP z terminálu, ktorý nám pomáha s curl a jq. Hlavný účel a použitie pre cURL je automatizácia prenosu súborov alebo bezobslužné sekvencie operácií, zatiaľ čo jq je funkčný jazyk na vysokej úrovni s podporou spätného sledovania a správy dátových tokov JSON.
Geografické umiestnenie adresy IP z terminálu
Nainštalujte Curl a jq
Na získanie geografického umiestnenia adresy IP budeme musieť nainštalujte zvlnenie a nástroj príkazového riadku jq na spracovanie údajov JSON získaných z geolokačných API. Ak chcete nainštalovať obe, v termináli (Ctrl + Alt + T) budete musieť napísať príkaz:
sudo apt install curl jq
Získajte verejnú IP adresu servera
Pred získaním polohy musíte poznať verejnú IP adresu servera, ku ktorému sa pripájame. Na tento účel použijeme nasledujúci príkaz cURL, s ktorým zadáme požiadavku ipinfo.io z terminálu (Ctrl + Alt + T), ako je uvedené nižšie:
curl https://ipinfo.io/ip
Získajte údaje o geografickom umiestnení adresy IP vášho systému vďaka rozhraniu API
Po vykonaní predchádzajúceho príkazu získame verejnú IP adresu. Keď to máme, budeme môcť podať žiadosť na ipvigilante.com o získanie geolokačných údajov. Na to použijeme v termináli nasledujúci príkaz (Ctrl + Alt + T). Je dôležité nahradiť verejnú IP adresu IP získanou predchádzajúcim príkazom.
curl https://ipvigilante.com/la-dirección-IP
Automatizujte volanie API pomocou nástroja Bash Script
Aby sme automatizovali proces komunikácie pomocou API, do ktorého ideme vytvoriť skript vo vnútri súboru s názvom ipgeolocator.sh (meno je voliteľné). Na jeho vytvorenie budeme môcť použiť ľubovoľný editor príkazového riadku, v ktorom sa každý cíti najkomfortnejšie.
vim ipgeolocalizador.sh
Po otvorení editora vo vnútri stačí urobiť vložte riadok zobrazené nižšie:
curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
Po vložení musíte iba uložiť súbor a ukončiť editor. Potom to bude potrebné skript spustiť. Urobíme to tak, že napíšeme do rovnakého terminálu:
chmod +x ipgeolocalizador.sh
V tomto okamihu môžeme spustite skript nasledujúcim spôsobom, aby ste zistili geografické umiestnenie adresy IP verejnosť:
./ipgeolocalizador.sh
Vyššie uvedený skript zobrazuje názov mesta a krajiny spolu s približnými súradnicami zemepisnej šírky a dĺžky. Pravda je taká Nepoznám rozpätie chýb, ktoré môže mať.
Ak nechcete uložiť vyššie uvedený dlhý príkaz do súboru, ten istý príkaz môžete spustiť aj priamo v termináli (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'
V tomto krátkom článku sme videli, ako na to získajte geolokáciu adresy IP z Ubuntu pomocou príkazov terminálu a curl a jq. Môžete získať viac informácií o jq alebo o cURL v príslušných článkoch na Wikipédii.