В следующей статье мы рассмотрим, как мы можем получить географическое расположение нашего общедоступного IP-адреса. Мы сможем сделать это с помощью открытых API-интерфейсов и простого сценария bash, и все это из терминала Ubuntu. Сегодня все устройства, подключенные к Интернету, имеют IP-адрес, который является их мировым идентификатором. Этот адрес мы будем использовать для определения вашего местоположения.
Когда мы путешествуем по Интернету, у каждого сервера есть публичный IP-адрес, он назначается непосредственно серверу или через маршрутизатор, который отправляет сетевой трафик на этот сервер. IP-адреса предоставляют простой способ отслеживать географическое положение сервера в мире. Этого можно достичь, используя два API, предоставляемых ipinfo.io e ipvigilante.com с помощью которого мы сможем получить страну сервера, название города и его географические координаты.
В следующих строках мы увидим, как получить географическое положение IP с терминала, помогая нам с curl и jq. Основное назначение и использование для завить заключается в автоматизации передачи файлов или неконтролируемых последовательностей операций, в то время как jq - это функциональный язык очень высокого уровня с поддержкой обратного отслеживания и управления потоками данных JSON.
Географическое расположение IP от терминала
Установите Curl и jq
Чтобы узнать географическое положение IP-адреса, нам нужно будет установить завиток и инструмент командной строки jq для обработки данных JSON, полученных от API геолокации. Чтобы установить оба, в терминале (Ctrl + Alt + T) вам нужно будет написать команду:
sudo apt install curl jq
Получите публичный IP-адрес сервера
Прежде чем получить локацию, вам необходимо знать публичный IP-адрес сервера, к которому мы подключаемся. Для этого мы будем использовать следующую команду cURL, с помощью которой мы сделаем запрос к ipinfo.io из терминала (Ctrl + Alt + T), как показано ниже:
curl https://ipinfo.io/ip
Получите данные о географическом расположении IP вашей системы благодаря API
После выполнения предыдущей команды мы получим публичный IP-адрес. Как только мы его получим, мы сможем сделать запрос на ipvigilante.com для получения геолокационных данных. Для этого воспользуемся следующей командой в терминале (Ctrl + Alt + T). Важно заменить общедоступный IP-адрес на IP-адрес, полученный с помощью предыдущей команды.
curl https://ipvigilante.com/la-dirección-IP
Автоматизируйте вызов API с помощью Bash Script
Чтобы автоматизировать процесс взаимодействия с API, мы собираемся создать сценарий внутри файла с именем ipgeolocator.sh (имя не обязательно). Для его создания мы сможем использовать любой редактор командной строки, с которым каждому удобнее всего.
vim ipgeolocalizador.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 ipgeolocalizador.sh
На данный момент мы можем запустите сценарий, как показано ниже, чтобы получить геолокацию IP общественность:
./ipgeolocalizador.sh
Приведенный выше сценарий отображает название города и страны, а также приблизительные координаты широты и долготы. Правда в том, что Я не знаю допустимой погрешности..
Если вы не хотите сохранять указанную выше длинную команду внутри файла, вы также можете запустить ту же команду прямо в терминале (Ctrl + Alt + T):
curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
В этой короткой статье мы увидели, как получить геолокацию IP из Ubuntu с помощью команд терминала и curl и jq. Вы можете получить больше информации о jq или о завить в соответствующих статьях в Википедии.