V naslednjem članku si bomo ogledali, kako lahko pridobite geografsko lokacijo našega javnega naslova IP. To bomo lahko storili z odprtimi API-ji in preprostim bash skriptom, vse s terminala Ubuntu. Danes imajo vse naprave, povezane z internetom, IP, ki je bil njihov svetovni identifikator. Ta naslov bomo uporabili za določitev vaše lokacije.
Ko brskamo po internetu, vsak strežnik ima javni naslov IP, ta se dodeli neposredno strežniku ali prek usmerjevalnika, ki temu strežniku pošilja omrežni promet. Naslovi IP omogočajo enostaven način sledenja geografski lokaciji strežnika na svetu. To lahko dosežemo z uporabo dveh API-jev, ki jih ponuja ipinfo.io e ipvigilante.com s katero bomo lahko dobili državo strežnika, ime mesta in njegove geografske koordinate.
V naslednjih vrsticah bomo videli, kako pojdi geografski položaj IP s terminala, ki nam pomaga pri curl in jq. Glavni namen in uporaba za cURL je avtomatizirati prenose datotek ali nenadzorovana zaporedja operacij, medtem ko jq je zelo funkcionalen jezik na visoki ravni s podporo za povratno sledenje in upravljanje podatkovnih tokov JSON.
Geografska lokacija IP s terminala
Namestite Curl in jq
Da bi dobili geografsko lokacijo naslova IP, bomo morali namestite curl in jq orodje ukazne vrstice za obdelavo podatkov JSON, pridobljenih iz API-jev za geolokacijo. Če želite namestiti oboje, morate v terminal (Ctrl + Alt + T) napisati ukaz:
sudo apt install curl jq
Pridobite javni naslov IP strežnika
Preden dobite lokacijo, jo morate vedeti javni naslov IP strežnika, na katerega se povezujemo. Za to bomo uporabili naslednji ukaz cURL, s katerim bomo podali zahtevo ipinfo.io s terminala (Ctrl + Alt + T), kot je prikazano spodaj:
curl https://ipinfo.io/ip
Z API-jem pridobite podatke o geografski lokaciji IP-ja vašega sistema
Po izvedbi prejšnjega ukaza bomo dobili javni naslov IP. Ko ga bomo imeli, bomo lahko oddajte zahtevo na ipvigilante.com za pridobitev podatkov o geolokaciji. Za to bomo v terminalu uporabili naslednji ukaz (Ctrl + Alt + T). Pomembno je, da nadomestite javni IP s tistim, pridobljenim s prejšnjim ukazom.
curl https://ipvigilante.com/la-dirección-IP
Avtomatizirajte klic API z uporabo skripte Bash
Za avtomatizacijo komunikacijskega procesa z API-jem se bomo lotili ustvari skript v datoteki z imenom ipgeolocator.sh (ime ni obvezno). Za njegovo ustvarjanje bomo lahko uporabili kateri koli urejevalnik za ukazno vrstico, s katerim se vsak počuti najbolj udobno.
vim ipgeolocalizador.sh
Ko se urejevalnik odpre, morate preprosto prilepite vrstico prikazano spodaj:
curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
Ko jo prilepite, morate samo shraniti datoteko in zapreti urejevalnik. Po tem bo treba naredite skript izvršljiv. To bomo storili tako, da bomo v isti terminal zapisali:
chmod +x ipgeolocalizador.sh
V tem trenutku lahko zaženite skript, kot sledi, da dobite geolokacijo IP-ja javnega:
./ipgeolocalizador.sh
Zgornji skript prikazuje ime mesta in države ter približne koordinate zemljepisne širine in dolžine. Resnica je taka Ne poznam napake, ki bi jo lahko imela.
Če zgornjega dolgega ukaza ne želite shraniti v datoteko, isti isti ukaz lahko zaženete tudi neposredno v 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'
V tem kratkem članku smo videli, kako pridobite geolokacijo IP-ja iz Ubuntuja z uporabo ukazov terminal in curl ter jq. Lahko dobite več informacij o jq ali približno cURL v ustreznih člankih na Wikipediji.