Pentru a obține informații despre locația geografică despre o anumită adresă IP, trebuie să utilizați un serviciu online care oferă API-ul corespunzător. Este o idee bună să folosiți un serviciu public pentru a evita procedura de autorizare și gestionarea cheilor API. Un astfel de serviciu este FreeGeoIP.net.
Oferă un API public HTTP pentru a căuta geolocalizarea adreselor IP. Utilizează o bază de date de adrese IP care sunt asociate cu orașele, împreună cu alte informații relevante, cum ar fi fusul orar, latitudinea și longitudinea. Acest lucru este foarte util.
Serviciul poate oferi rezultate de căutare ca JSON sau XML. Deci, dacă combinăm curl cu un analizor JSON, putem obține informațiile necesare.
Voi folosi analizatorul meu JSON preferat, jq:
Este foarte ușor și rapid.
Pentru cazul nostru, interogarea ar trebui să fie după cum urmează:
|_+_|Porțiunea „json” de aici este formatul de date dorit. Pe lângă JSON, poate fi XML sau CSV.
Să rulăm interogarea cu curl și să vedem rezultatul:
Rezultatul este o ieșire JSON brută, care este greu de citit. Pentru a îmbunătăți aspectul setului de rezultate, să folosim instrumentul jq. Combinați-l cu bucle după cum urmează:
|_+_|Rezultatul va fi mai ușor de citit:
Folosind jq, puteți filtra rezultatul și îl puteți face să afișeze numai câmpurile necesare. Următoarea comandă va afișa numai numele țării, latitudinea și longitudinea:
|_+_|Puteți salva această comandă ca următorul script shell:
|_+_|Data viitoare când trebuie să obțineți informații de localizare geografică, puteți executa scriptul astfel:
|_+_|Asta este.