Uneori trebuie să obțineți rapid informațiile de geolocalizare pentru o adresă IP. În Linux, puteți utiliza puterea aplicațiilor de consolă pentru a vă economisi timpul și a prelua aceste informații rapid. Să vedem cum se poate face.
Reclama
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 adecvat. Este o idee bună să utilizați un serviciu public pentru a evita procedura de autorizare și gestionarea cheii API. Un astfel de serviciu este FreeGeoIP.net.
Oferă un API HTTP public pentru a căuta geolocalizarea adreselor IP. Folosește o bază de date cu 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 ale căutării ca JSON sau XML. Deci, dacă combinăm curlul cu un parser JSON, putem obține informațiile necesare.
unde sunt mesajele mele pe instagram
Voi folosi parserul meu JSON preferat, jq:
Este foarte ușor și rapid.
Pentru cazul nostru, interogarea ar trebui să fie următoarea:
http://freegeoip.net/json/119.94.116.145
Partea „json” 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 brută JSON care este greu de citit. Pentru a îmbunătăți aspectul setului de rezultate, să folosim instrumentul jq. Combinați-l cu bucla după cum urmează:
curl http://freegeoip.net/json/119.94.116.145|jq
Ieșirea va fi mai ușor de citit:
Folosind jq, puteți filtra rezultatul și îl puteți afișa numai câmpurile necesare. Următoarea comandă va afișa doar numele țării, latitudinea și longitudinea:
curl http://freegeoip.net/json/119.94.116.145|jq -r '.country_name, .latitude, .longitude'
Puteți salva această comandă ca următorul script shell:
#! / bin / sh curl -s http://freegeoip.net/json/|jq -r '.country_name, .latitude, .longitude'
Data viitoare când trebuie să obțineți informații despre geolocalizare, vă puteți executa scriptul astfel:
./geo.sh Adresă_IP
Asta e.