Ak chcete získať informácie o geografickej polohe o konkrétnej adrese IP, musíte použiť nejakú online službu, ktorá poskytuje príslušné rozhranie API. Je dobré použiť nejakú verejnú službu, aby ste sa vyhli autorizačnému postupu a správe kľúčov API. Jednou z takýchto služieb je FreeGeoIP.net.
Poskytuje verejné HTTP API na vyhľadávanie geolokácie IP adries. Používa databázu IP adries, ktoré sú spojené s mestami, spolu s ďalšími relevantnými informáciami, ako je časové pásmo, zemepisná šírka a dĺžka. Toto je veľmi užitočné.
Služba môže poskytovať výsledky vyhľadávania ako JSON alebo XML. Takže, ak skombinujeme curl s nejakým JSON parserom, môžeme získať požadované informácie.
Použijem svoj obľúbený analyzátor JSON, jq:
Je veľmi ľahký a rýchly.
V našom prípade by mal byť dopyt nasledovný:
|_+_|Časť „json“ tu predstavuje požadovaný formát údajov. Okrem JSON to môže byť XML alebo CSV.
Spustite dotaz pomocou curl a pozrime si výstup:
Výsledkom je nespracovaný výstup JSON, ktorý je ťažko čitateľný. Na zlepšenie vzhľadu sady výsledkov použite nástroj jq. Skombinujte ho s curl takto:
|_+_|Výstup bude ľahšie čitateľný:
Pomocou jq môžete filtrovať výstup a zobraziť iba požadované polia. Nasledujúci príkaz zobrazí iba názov krajiny, zemepisnú šírku a dĺžku:
|_+_|Tento príkaz môžete uložiť ako nasledujúci skript shellu:
|_+_|Keď budete nabudúce potrebovať získať informácie o geolokácii, môžete skript spustiť takto:
|_+_|To je všetko.