Щоб отримати інформацію про геомісцезнаходження певної IP-адреси, вам потрібно скористатися онлайн-службою, яка надає відповідний API. Щоб уникнути процедури авторизації та керування ключами API, варто скористатися деякими загальнодоступними службами. Однією з таких послуг є FreeGeoIP.net.
Він надає публічний HTTP API для пошуку геолокації IP-адрес. Він використовує базу даних IP-адрес, які пов’язані з містами, а також іншу відповідну інформацію, як-от часовий пояс, широта та довгота. Це дуже корисно.
Сервіс може надавати результати пошуку у форматі JSON або XML. Отже, якщо ми поєднаємо curl з деяким JSON-парсером, ми зможемо отримати необхідну інформацію.
Я буду використовувати мій улюблений аналізатор JSON, jq:
Він дуже легкий і швидкий.
Для нашого випадку запит має бути таким:
|_+_|Частина «json» тут є бажаним форматом даних. Окрім JSON, це може бути XML або CSV.
Давайте запустимо запит за допомогою curl і побачимо результат:
Результатом є необроблений вихід JSON, який важко прочитати. Щоб покращити зовнішній вигляд набору результатів, скористаємося інструментом jq. Поєднуйте його з плойкою так:
|_+_|Результат буде легше читати:
Використовуючи jq, ви можете відфільтрувати вивід і зробити так, щоб він показував лише необхідні поля. Наступна команда відобразить лише назву країни, широту та довготу:
|_+_|Ви можете зберегти цю команду як наступний сценарій оболонки:
|_+_|Наступного разу, коли вам знадобиться отримати інформацію про геолокацію, ви можете виконати свій сценарій так:
|_+_|Це воно.