Niekedy musíte rýchlo získať geolokačné informácie pre adresu IP. V systéme Linux môžete pomocou sily konzolových aplikácií ušetriť čas a rýchlo načítať tieto informácie. Pozrime sa, ako sa to dá urobiť.
Inzerát
Ak chcete získať informácie o geografickej polohe o konkrétnej adrese IP, musíte použiť službu online, ktorá poskytuje príslušné rozhranie API. Je dobré použiť určitú verejnú službu, aby ste sa vyhli postupu autorizácie a správe kľúčov API. Jednou z takýchto služieb je FreeGeoIP.net.
Poskytuje verejné HTTP API na prehľ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 sú časové pásmo, zemepisná šírka a dĺžka. To je veľmi užitočné.
Služba môže poskytovať výsledky vyhľadávania ako JSON alebo XML. Ak teda skombinujeme zvlnenie s nejakým analyzátorom JSON, môžeme získať požadované informácie.
ako niekoho vykopnúť z netflixu
Použijem môj obľúbený analyzátor JSON, jq:
Je veľmi ľahký a rýchly.
V našom prípade by mal byť dotaz nasledovný:
http://freegeoip.net/json/119.94.116.145
Časť „json“ tu predstavuje požadovaný formát údajov. Okrem JSON to môže byť XML alebo CSV.
Poďme spustiť dopyt s curl a vidieť výstup:
Výsledkom je surový výstup JSON, ktorý sa ťažko číta. Na vylepšenie vzhľadu výsledkovej sady použijeme nástroj jq. Kombinujte ho s kučeravením takto:
zvlnenie http://freegeoip.net/json/119.94.116.145|jq
Výstup bude ľahšie čitateľný:
Pomocou jq môžete filtrovať výstup a nechať ho zobrazovať iba povinné polia. Nasledujúci príkaz zobrazí iba názov krajiny, zemepisnú šírku a dĺžku:
curl http://freegeoip.net/json/119.94.116.145|jq -r '.country_name, .latitude, .longitude'
Tento príkaz môžete uložiť ako nasledujúci shell skript:
#! / bin / sh curl -s http://freegeoip.net/json/|jq -r '.country_name, .latitude, .longitude'
Až budete nabudúce potrebovať získať informácie o geografickej polohe, môžete spustiť svoj skript takto:
./geo.sh IP_address
To je všetko.