Chcete-li získat informace o zeměpisné poloze o konkrétní IP adrese, musíte použít nějakou online službu, která poskytuje příslušné API. Je dobré použít nějakou veřejnou službu, abyste se vyhnuli autorizační proceduře a správě API klíčů. Jednou z takových služeb je FreeGeoIP.net.
Poskytuje veřejné HTTP API pro vyhledávání geolokace IP adres. Využívá databázi IP adres, které jsou spojeny s městy, spolu s dalšími relevantními informacemi, jako je časové pásmo, zeměpisná šířka a délka. To je velmi užitečné.
Služba může poskytovat výsledky vyhledávání jako JSON nebo XML. Pokud tedy zkombinujeme curl s nějakým JSON parserem, můžeme získat požadované informace.
Použiji svůj oblíbený analyzátor JSON, jq:
Je velmi lehký a rychlý.
V našem případě by dotaz měl znít následovně:
|_+_|Část 'json' je zde požadovaný formát dat. Kromě JSON to může být XML nebo CSV.
Spusťte dotaz pomocí curl a podívejte se na výstup:
Výsledkem je nezpracovaný výstup JSON, který je obtížně čitelný. Pro vylepšení vzhledu výsledné sady použijeme nástroj jq. Zkombinujte to s curl takto:
|_+_|Výstup bude lépe čitelný:
Pomocí jq můžete filtrovat výstup a nastavit, aby zobrazoval pouze požadovaná pole. Následující příkaz zobrazí pouze název země, zeměpisnou šířku a délku:
|_+_|Tento příkaz můžete uložit jako následující skript shellu:
|_+_|Až budete příště potřebovat získat informace o geolokaci, můžete skript spustit takto:
|_+_|A je to.