Чтобы получить информацию о географическом местоположении определенного IP-адреса, вам необходимо использовать какой-либо онлайн-сервис, предоставляющий соответствующий API. Рекомендуется использовать какой-либо публичный сервис, чтобы избежать процедуры авторизации и управления ключами API. Одной из таких услуг является FreeGeoIP.net.
Он предоставляет общедоступный HTTP API для поиска геолокации IP-адресов. Он использует базу данных IP-адресов, связанных с городами, а также другую соответствующую информацию, такую как часовой пояс, широту и долготу. Это очень полезно.
Служба может предоставлять результаты поиска в формате JSON или XML. Итак, если мы объединим Curl с каким-нибудь парсером JSON, мы сможем получить необходимую информацию.
Я буду использовать мой любимый парсер JSON jq:
Он очень легкий и быстрый.
В нашем случае запрос должен быть следующим:
|_+_|Часть «json» здесь — это желаемый формат данных. Помимо JSON, это может быть XML или CSV.
Давайте запустим запрос с помощью Curl и посмотрим результат:
Результатом является необработанный вывод JSON, который трудно прочитать. Чтобы улучшить внешний вид набора результатов, воспользуемся инструментом jq. Объедините его с локоном следующим образом:
|_+_|Вывод будет легче читать:
Используя jq, вы можете фильтровать вывод и отображать только обязательные поля. Следующая команда отобразит только название страны, широту и долготу:
|_+_|Вы можете сохранить эту команду как следующий сценарий оболочки:
|_+_|В следующий раз, когда вам понадобится получить информацию о геолокации, вы можете выполнить свой скрипт следующим образом:
|_+_|Вот и все.