Скрипти для визначення місця перебування клієнта за допомогою технології IP-геолокації та зворотного виклику в Інтернеті, які обробляють запити на основі IP-адреси. Огляд доступних сервісів.
Назва | Дані | Ключ->Значення |
---|---|---|
Континент | North America | $ipdat->geoplugin_continentName |
Країна | United States | $ipdat->geoplugin_countryName |
Місто | Columbus | $ipdat->geoplugin_city |
Широта | 39.9625 | $ipdat->geoplugin_latitude |
Довгота | -83.0061 | $ipdat->geoplugin_longitude |
Символ валюти | Н/Д | $ipdat->geoplugin_currencySymbol |
Код валюти | USD | $ipdat->geoplugin_currencyCode |
Часовий пояс | America/New_York | $ipdat->geoplugin_timezone |
Ваш публічний IP: 216.73.216.172
Дані отримані з онлайн-сервісу geoPlugin на основі відповіді клієнта. Цей скрипт використовує базу GeoLite2, створену компанією MaxMind. Оскільки сервіс безплатний, параметр City
може бути недоступним, але для публічних проксі, VPN або TOR назва міста може відображатися.
Окремого визначення IP не потрібно, оскільки geoPlugin автоматично визначає адресу, з якої надійшов запит.
Іноді необхідно виконати зворотний виклик іншим сервером, щоб отримати реальну (за винятком приватної) адресу респондента. При цьому підключення через VPN або TOR не завадить визначити місце входу в мережу.
Ukraine ★ Irpin ★ 50.5198/30.2617 ★ Europe/Kyiv ★ ip 193.201.217.70 ★ LLC IRPIN LOCAL NETWORKS
Дані про користувача IP 193.201.217.70
отримані на безплатному онлайн-сервісі ip-api.com, а зворотний виклик здійснено через сервіс ipify.org. Слід пам’ятати, що IP визначається роутером або маршрутизатором, який першим відповідає на зовнішній запит. Для порівняння за вказаною IP-адресою, перейдіть до відповіді на сторонньому сервісі.
Сервіс IP-api безплатний із обмеженням до 45 запитів на хвилину. Формати відповіді (Response Formats) доступні у JSON, XML, CSV, Newline або PHP, як у прикладі вище. Однак бажано використовувати JSON, оскільки майже всі PHP-сайти підтримують json_decode()
, що швидше, ніж unserialize()
.
Дані | Ключ->Значення |
---|---|
success | $data->status |
Ukraine | $data->country |
UA | $data->countryCode |
32 | $data->region |
Kyiv Oblast | $data->regionName |
Irpin | $data->city |
08205 | $data->zip |
50.5198 | $data->lat |
30.2617 | $data->lon |
Europe/Kyiv | $data->timezone |
LLC IRPIN LOCAL NETWORKS | $data->isp |
LLC IRPIN LOCAL NETWORKS | $data->org |
AS43312 LLC IRPIN LOCAL NETWORKS | $data->as |
193.201.217.70 | $data->query |
Приклад скрипта PHP для виклику повного лістингу з бази даних ip-api.com у форматі JSON наведено нижче.
За потреби $ip_address можна визначити іншим способом, який відповідає вашим задачам, наприклад, через змінну $_SERVER['REMOTE_ADDR']
. Однак варто пам’ятати, що вона може повертати IP-адресу проксі або внутрішню адресу, якщо користувач перебуває за NAT чи VPN, тому для точнішого визначення бажано додатково перевіряти HTTP_X_FORWARDED_FOR
або HTTP_CLIENT_IP
.