U sljedećem ćemo članku pogledati kako možemo dobiti geografski položaj naše javne IP adrese. To ćemo moći učiniti putem otvorenih API-ja i jednostavne bash skripte, sve s Ubuntu terminala. Danas svi uređaji povezani na Internet imaju IP adresu, koja je njihov identifikator u svijetu. Ova adresa ćemo koristiti za dobivanje vaše lokacije.
Kada surfamo Internetom, svaki poslužitelj ima javnu IP adresu, ovo se dodjeljuje izravno serveru ili putem usmjerivača koji šalje mrežni promet na taj server. IP adrese pružaju jednostavan način za praćenje geografskog položaja servera u svijetu. To se može postići korištenjem dva API-ja koja pruža ipinfo.io e ipvigilante.com pomoću koje ćemo moći dobiti zemlju servera, ime grada i njegove geografske koordinate.
U narednim redovima vidjet ćemo kako dobiti geografski položaj IP-a s terminala koji nam pomaže kod curl-a i jq-a. Glavna svrha i upotreba za cURL je automatizirati prijenos datoteka ili nenadgledane sekvence operacija, dok jq je vrlo funkcionalan jezik na visokoj razini s podrškom za povratno praćenje i upravljanje JSON tokovima podataka.
Geografski položaj IP-a s terminala
Instalirajte Curl i jq
Da bismo dobili geografski položaj IP adrese, morat ćemo instalirati curl I to jq alat naredbenog retka za obradu JSON podataka dobijenih iz API-ja za geolokaciju. Da biste instalirali oba, u terminal (Ctrl + Alt + T) morat ćete napisati naredbu:
sudo apt install curl jq
Nabavite javnu IP adresu servera
Prije nego što dobijete lokaciju, morate znati javnu IP adresu servera na koji se povezujemo. Za to ćemo upotrijebiti sljedeću naredbu cURL s kojom ćemo uputiti zahtjev ipinfo.io sa terminala (Ctrl + Alt + T) kao što je prikazano dole:
curl https://ipinfo.io/ip
Pribavite podatke o geografskom položaju IP vašeg sistema zahvaljujući API-ju
Nakon izvršavanja prethodne naredbe dobit ćemo javnu IP adresu. Jednom kad ga dobijemo, moći ćemo podnesite zahtjev ipvigilante.com za dobivanje podataka o geolokaciji. Za to ćemo upotrijebiti sljedeću naredbu u terminalu (Ctrl + Alt + T). Važno je zamijeniti javni IP onim dobivenim prethodnom naredbom.
curl https://ipvigilante.com/la-dirección-IP
Automatizirajte API poziv koristeći Bash Script
Da bismo automatizirali proces komunikacije s API-jem, idemo stvoriti skriptu unutar datoteke koja se zove ipgeolocator.sh (ime nije obavezno). Za njegovo stvaranje moći ćemo koristiti bilo koji editor za naredbenu liniju s kojim se svaki osjeća najudobnije.
vim ipgeolocalizador.sh
Kad se urednik otvori, iznutra to jednostavno morate zalijepite liniju prikazano dole:
curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
Jednom zalijepljeno, ostaje samo spremiti datoteku i izaći iz uređivača. Nakon ovoga će biti potrebno učiniti skriptu izvršnom. To ćemo učiniti pisanjem u isti terminal:
chmod +x ipgeolocalizador.sh
U ovom trenutku možemo pokrenite skriptu kako slijedi da biste dobili geolokaciju IP-a public:
./ipgeolocalizador.sh
Gornja skripta prikazuje ime grada i države zajedno s približnim koordinatama geografske širine i dužine. Istina je takva Ne znam granicu greške koju može imati.
Ako gornju dugu naredbu ne želite spremiti u datoteku, također možete pokrenuti istu tu naredbu izravno u terminalu (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'
U ovom kratkom članku vidjeli smo kako dobiti geolokaciju IP-a iz Ubuntu-a pomoću terminala i curl i jq naredbi. Možete dobiti više informacija o jq ili otprilike cURL u odgovarajućim člancima na Wikipediji.