В этой статье мы покажем вам, как найти географическое местоположение IP-адреса удаленной системы Linux с помощью открытых API и простого bash-скрипта из командной строки.
В Интернете каждый сервер имеет общедоступный IP-адрес, который назначается непосредственно серверу или через маршрутизатор, который отправляет сетевой трафик на этот сервер.
IP-адреса обеспечивают простой способ отслеживания местоположения сервера в мире с помощью двух полезных API-интерфейсов, предоставленных ipinfo.io и ipvigilante.com, чтобы связать город, штат и страну с сервером.
Установите Curl и JQ
Чтобы получить географическое расположение IP-адреса сервера, нам нужно установить загрузчик командной строки curl и инструмент командной строки jq для обработки данных JSON из API геолокации.
$ 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
Чтобы получить публичный IP-адрес сервера, используйте следующую команду curl, чтобы сделать запрос API к ipinfo.io в вашем терминале, как показано ниже^
$ curl https://ipinfo.io/ip
Как получить данные о местонахождении IP из API
Получив общедоступный IP-адрес сервера, вы можете сделать запрос к API ipvigilante.com для получения данных геолокации, используя следующую команду.
Обязательно замените <your ip address> публичным IP-адресом сервера.
$ curl https://ipvigilante.com/<your ip address>
Это данные, которые мы получаем из приведенной выше команды.
Как автоматизировать вызов API с помощью Bash скрипта
Теперь, чтобы автоматизировать процесс API, мы создадим скрипт с именем getipgeoloc.sh (вы можете назвать его как угодно), используя любой из ваших любимых редакторов командной строки.
$ vim getipgeoloc.sh
Затем скопируйте и вставьте в него следующую длинную команду.
curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
Сохраните файл и сделайте скрипт исполняемым с помощью следующей команды.
$ chmod +x getipgeoloc.sh
Наконец, запустите скрипт, чтобы получить географическое расположение вашего IP-адреса Linux, как показано на следующем снимке экрана.
$ ./getipgeoloc.sh
Приведенный выше скрипт показывает название города и страны, а также приблизительные координаты широты и долготы.
Кроме того, вы также можете запустить приведенную выше команду, не сохраняя ее в скрипте, как показано далее
$ curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq ‘.data.latitude, .data.longitude, .data.city_name, .data.country_name’