Wyszukiwanie w witrynie

Jak znaleźć lokalizację geograficzną serwera Linux w terminalu


W tym artykule pokażemy, jak znaleźć lokalizację geograficzną adresu IP zdalnego systemu Linux, korzystając z otwartych API i prostego skryptu bash z wiersza poleceń.

W Internecie każdy serwer ma publiczny adres IP, który jest przypisywany bezpośrednio do serwera lub za pośrednictwem routera, który wysyła ruch sieciowy do tego serwera.

Adresy IP umożliwiają łatwe śledzenie lokalizacji serwera na świecie za pomocą dwóch przydatnych interfejsów API udostępnianych przez ipinfo.io i ipvigilante.com, aby uzyskać miasto, stan i kraj połączone z serwerem.

Zainstaluj Curl i jq

Aby uzyskać lokalizację geograficzną adresu IP serwera, musimy zainstalować narzędzie do pobierania wiersza poleceń curl i narzędzie wiersza poleceń jq w celu przetwarzania danych JSON z interfejsów API geolokalizacji.

sudo apt install curl jq		#Ubuntu/Debian
sudo yum install curl jq		#CentOS/RHEL
sudo dnf install curl jq		#Fedora 22+
sudo zypper install curl jq		#openSUSE

Znajdź publiczny adres IP serwera

Aby uzyskać publiczny adres IP serwera, użyj następującego polecenia curl i wyślij żądanie API do ipinfo.io w swoim terminalu, jak pokazano.

curl https://ipinfo.io/ip

Uzyskaj dane o lokalizacji adresu IP z interfejsu API

Po uzyskaniu publicznego adresu IP serwera możesz teraz wysłać żądanie do interfejsu API ipvigilante.com w celu pobrania danych geolokalizacyjnych za pomocą następującego polecenia. Pamiętaj, aby zastąpić publicznym adresem IP serwera.

curl https://ipvigilante.com/<your ip address>

To są dane, które otrzymujemy z powyższego polecenia.

Automatyzuj wywołanie API za pomocą skryptu Bash

Teraz, aby zautomatyzować proces API, utworzymy skrypt o nazwie getipgeoloc.sh (możesz nazwać go dowolnie) przy użyciu dowolnego z Twoich ulubionych edytorów wiersza poleceń.

vim getipgeoloc.sh

Następnie skopiuj i wklej w nim następujące długie polecenie.

curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'

Zapisz plik i spraw, aby skrypt był wykonywalny za pomocą następującego polecenia.

chmod +x getipgeoloc.sh

Na koniec uruchom skrypt, aby uzyskać lokalizację geograficzną adresu IP systemu Linux, jak pokazano na poniższym zrzucie ekranu.

./getipgeoloc.sh

Powyższy skrypt pokazuje nazwę miasta i kraju wraz z przybliżonymi współrzędnymi szerokości geograficznej i długości geograficznej.

Alternatywnie możesz także uruchomić powyższe polecenie bez zapisywania go w skrypcie, jak pokazano.

curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'

Możesz także przeczytać następujące powiązane artykuły:

  1. 4 sposoby na znalezienie publicznego adresu IP serwera w terminalu Linux
  2. Znajdź wszystkie adresy IP hostów na żywo połączone w sieci w systemie Linux
  3. Znajdź 10 najpopularniejszych adresów IP uzyskujących dostęp do Twojego serwera WWW Apache

To wszystko na teraz! W tym krótkim artykule pokazaliśmy, jak uzyskać z terminala lokalizację geograficzną IP systemu Linux za pomocą poleceń curl i jq. Podziel się z nami swoimi przemyśleniami lub zadaj pytania za pomocą poniższego formularza opinii.