Uzyskaj informacje o geolokalizacji adresu IP w Bash w systemie Linux
Czasami trzeba szybko uzyskać informacje o geolokalizacji adresu IP. W systemie Linux możesz wykorzystać moc aplikacji konsolowych, aby zaoszczędzić czas i szybko odzyskać te informacje. Zobaczmy, jak można to zrobić.
Reklama
Aby uzyskać informacje o lokalizacji geograficznej konkretnego adresu IP, musisz skorzystać z usługi online, która zapewnia odpowiedni interfejs API. Dobrym pomysłem jest skorzystanie z jakiejś usługi publicznej, aby uniknąć procedury autoryzacji i zarządzania kluczami API. Jedną z takich usług jest FreeGeoIP.net.
Zapewnia publiczny interfejs API HTTP do wyszukiwania geolokalizacji adresów IP. Wykorzystuje bazę danych adresów IP powiązanych z miastami wraz z innymi istotnymi informacjami, takimi jak strefa czasowa, szerokość i długość geograficzna. To bardzo przydatne.
Usługa może udostępniać wyniki wyszukiwania w formacie JSON lub XML. Tak więc, jeśli połączymy curl z jakimś parserem JSON, możemy uzyskać wymagane informacje.
Użyję mojego ulubionego parsera JSON, jq:
Jest bardzo lekki i szybki.
W naszym przypadku zapytanie powinno wyglądać następująco:
http://freegeoip.net/json/119.94.116.145
Część „json” to żądany format danych. Oprócz JSON może to być XML lub CSV.
Uruchommy zapytanie z curl i zobaczmy wynik:
Wynikiem są surowe dane wyjściowe JSON, które są trudne do odczytania. Aby poprawić wygląd zestawu wyników, użyjmy narzędzia jq. Połącz go z lokami w następujący sposób:
kędzior http://freegeoip.net/json/119.94.116.145|jq
Wynik będzie łatwiejszy do odczytania:
Używając jq, możesz filtrować dane wyjściowe i wyświetlać tylko wymagane pola. Następujące polecenie wyświetli tylko nazwę kraju, szerokość i długość geograficzną:
kędzior http://freegeoip.net/json/119.94.116.145|jq -r '.nazwa_kraju,.szerokość,.długość geograficzna'
Możesz zapisać to polecenie jako następujący skrypt powłoki:
#!/bin/sz. curl -s http://freegeoip.net/json/$1|jq -r '.nazwa_kraju,.szerokość,.długość geograficzna'
Następnym razem, gdy będziesz potrzebować informacji o geolokalizacji, możesz wykonać swój skrypt w następujący sposób:
./geo.sh adres_IP
Otóż to.