Rose debug info
---------------

Геолокация на PHP

Часто необходимо определить местоположение посетителя сайта. Для этого можно воспользоваться сервисом https://ip-api.com

Получить данные можно GET-запросом по адресу: http://ip-api.com/php/ для текущего IP, http://ip-api.com/php/288.80.152.201 для конкретного или же http://ip-api.com/php/markpoint.ru для домена.

Чтобы получить данные на русском языке, нужно использовать параметр lang в запросе: http://ip-api.com/php/?lang=ru

Успешный результат вернет данные:

array (
  'status' => 'success',
  'country' => 'COUNTRY',
  'countryCode' => 'COUNTRY CODE',
  'region' => 'REGION CODE',
  'regionName' => 'REGION NAME',
  'city' => 'CITY',
  'zip' => ZIP CODE,
  'lat' => LATITUDE,
  'lon' => LONGITUDE,
  'timezone' => 'TIME ZONE',
  'isp' => 'ISP NAME',
  'org' => 'ORGANIZATION NAME',
  'as' => 'AS NUMBER / NAME',
  'query' => 'IP ADDRESS USED FOR QUERY',
)

Ошибочный:

array (
  'status' => 'fail',
  'message' => 'ERROR MESSAGE',
  'query' => 'IP ADDRESS USED FOR QUERY',
)

Пример использования:

<?php
    $ip = $_SERVER['REMOTE_ADDR']; 
    $query = @unserialize(file_get_contents('http://ip-api.com/php/'.$ip.'?lang=ru'));
    if($query && $query['status'] == 'success') {
        echo 'Привет, посетитель из '.$query['country'].', '.$query['city'].'!';
        } else {
        echo 'Не удалось определить локацию';
    }
?>

Бесплатный доступ имеет ограничение не более 45 запросов в минуту
Подробнее о тарифах — https://members.ip-api.com/#pricing

Поделиться
Отправить
 148   2022   php   геолокация