Někdy potřebujete rychle získat geolokační informace pro IP adresu. V systému Linux můžete využít sílu konzolových aplikací, abyste ušetřili čas a rychle získali tyto informace. Podívejme se, jak to lze udělat.
Reklama
Chcete-li získat informace o geografické 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 postupu autorizace a správě klíčů API. Jednou z takových služeb je FreeGeoIP.net.
Poskytuje veřejné HTTP API pro prohledávání geolokace IP adres. Využívá databázi IP adres, které jsou přidruženy k městům, 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 hledání jako JSON nebo XML. Pokud tedy kombinujeme zvlnění s nějakým analyzátorem JSON, můžeme získat požadované informace.
diskordovat, jak vymazat chat
Použiji svůj oblíbený analyzátor JSON, jq:
Je velmi lehký a rychlý.
V našem případě by měl být dotaz následující:
http://freegeoip.net/json/119.94.116.145
Část „json“ zde představuje požadovaný datový formát. Kromě JSON to může být XML nebo CSV.
Pojďme spustit dotaz s curl a zobrazit výstup:
Výsledkem je surový výstup JSON, který se těžko čte. Chcete-li vylepšit vzhled sady výsledků, použijte nástroj jq. Zkombinujte jej se zvlněním následujícím způsobem:
curl http://freegeoip.net/json/119.94.116.145|jq
Výstup bude čitelnější:
Pomocí jq můžete filtrovat výstup a nechat ho zobrazovat pouze požadovaná pole. Následující příkaz zobrazí pouze název země, zeměpisnou šířku a délku:
curl http://freegeoip.net/json/119.94.116.145|jq -r '.country_name, .latitude, .longitude'
Tento příkaz můžete uložit jako následující skript prostředí:
#! / bin / sh curl -s http://freegeoip.net/json/|jq -r '.country_name, .latitude, .longitude'
Až příště budete potřebovat získat informace o geolokaci, můžete skript spustit takto:
./geo.sh IP_address
A je to.