Скрипти для визначення місця перебування клієнта за допомогою технології IP-геолокації та зворотного виклику в Інтернеті, які обробляють запити на основі IP-адреси. Огляд можливих сервісів.
Title | Data | Key->Value |
---|---|---|
Continent Name | North America | $ipdat->geoplugin_continentName |
Country Name | United States | $ipdat->geoplugin_countryName |
City | Columbus | $ipdat->geoplugin_city |
Latitude | 39.9625 | $ipdat->geoplugin_latitude |
Longitude | -83.0061 | $ipdat->geoplugin_longitude |
Currency Symbol | $ | $ipdat->geoplugin_currencySymbol |
Currency Code | USD | $ipdat->geoplugin_currencyCode |
Timezone | America/New_York | $ipdat->geoplugin_timezone |
Публічний IP: 3.144.86.38
Дані отримані з онлайн-сервісу geoPlugin на основі відповіді клієнта. Цей скрипт включає базу GeoLite2, створену компанією MaxMind. Оскільки сервіс безплатний, то він не віддає параметр City
, хоча для публічних проксі або VPN і TOR, назва міста (містечка) може й відбиватися.
Окремого визначення IP в цьому випадку не потрібно, а достатньо звернення до бази даних тому, що geoPlugin сам знайде адресу, з якої прийшов виклик.
Інколи, необхідно виконати зворотний виклик іншим сервером та уже від нього отримати реальну (за виключенням приватної) адресу респондента. При цьому, підключення через VPN або TOR не завадить знайти місце положення його входу у мережу.
Ukraine★Kyiv★50.4398,30.5156★Europe/Kiev★ip 193.201.217.70★I-lan LLC
Дані про користувача 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()
Data | Key->Value |
---|---|
success | $data->status |
Ukraine | $data->country |
UA | $data->countryCode |
30 | $data->region |
Kyiv City | $data->regionName |
Kyiv | $data->city |
01010 | $data->zip |
50.4398 | $data->lat |
30.5156 | $data->lon |
Europe/Kiev | $data->timezone |
I-lan LLC | $data->isp |
I-LAN | $data->org |
AS43312 I-LAN LLC | $data->as |
193.201.217.70 | $data->query |
Приклад скрипта PHP для виклику повного лістингу з бази даних ip-api.com у форматі JSON приведений нижче. За потреби $ip_address можна винайти й інший спосіб, який відповідає вашим задачам, наприклад через змінну $_SERVER['REMOTE_ADDR']