В Интернете каждый сервер имеет общедоступный IP-адрес, который назначается непосредственно серверу или через маршрутизатор, который отправляет сетевой трафик на этот сервер.
IP-адреса обеспечивают простой способ отслеживания местоположения сервера в мире с помощью двух полезных API-интерфейсов, предоставленных ipinfo.io и ipvigilante.com, чтобы связать город , штат и страну с сервером.
Установите Curl и JQ
Чтобы получить географическое расположение IP-адреса сервера, нам нужно установить загрузчик командной строки curl и инструмент командной строки jq для обработки данных JSON из API геолокации.
Ubuntu/Debian
$ sudo apt install curl jq
CentOS/RHEL
$ sudo yum install curl jq
Fedora 22+
$ sudo dnf install curl jq
openSUSE
$ sudo zypper install curl jq
Найти публичный IP-адрес сервера
Чтобы получить публичный IP-адрес сервера, используйте следующую команду curl, чтобы сделать запрос API к ipinfo.io в вашем терминале, как показано.
$ curl https://ipinfo.io/ip
Получить данные о местонахождении IP из API
Получив общедоступный IP-адрес сервера, вы можете сделать запрос к API ipvigilante.com для получения данных геолокации, используя следующую команду. Обязательно замените <your ip address>на публичный IP-адрес сервера.
Автоматизировать вызов API с помощью Bash Script
Теперь, чтобы автоматизировать процесс 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'
На этом все. Теперь вы знаете как получить географическое местоположение вашего Linux Linux с терминала, используя команды curl и jq.