Иногда бывает нужно определить местоположение посетителя сайта для каких либо дальнейших действий. Если эти действия глобальнее, чем вывод карты или какой то информации, то лучше использовать для этого PHP, в противном случае, лучше подойдет JavaScript.

Как и в предыдущей заметке про геолокацию на JavaScript, воспользуемся сервисом ip-api.com.

Теперь о том, как что работает.

Данные берутся из GET запроса по адресу: http://ip-api.com/php/ для текущего IP, http://ip-api.com/php/208.80.152.201 для конкретного или http://ip-api.com/php/atuin.ru для домена.

Для получения данных на русском языке используем запрос: http://ip-api.com/php/?lang=ru

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

Ошибочный:

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

Пример:

Привет, посетитель из США, Ашберн!

Более подробную информацию можно найти в документации на сайте разработчика: ip-api.com

Определение географии по ip с использованием php библиотеки nikolaevevgegeoip:

Есть ещё библиотека которая называется nikolaevevgegeoip, использовать её необходимо с CRM Wordperss, Bitrix или Joomla(хотя как написано на странице библиотеки - у автора в планах дописать её чтобы она могла работать с другими CMS, видимо на текущий момент это не реализовано). Для того чтобы использовать библиотеку скопируйте код библиотеки с сайта разработчика по ссылке http://blog.ivru.net/?id=82, затем разместите его в каком либо php файле на Вашем хостинге после чего подключите к Вашей cms используя вызов require_once("адрес_php_файла");

В общем виде чтобы получить geo-информацию с использованием указанной библиотеки можно выполнить следующий код:

Из особенностей библиотеки: она умеет автоматически определять CMS WordPress, Bitrix, Joomla и используя настройки CMS соединяться с базой данных Вашего сайта и создавать в ней таблицы для хранения кеша. Для работы библиотека использует собственный API, обращения к которому кешируются в вышеупомянутые таблицы. Библиотека разрабатывается не компанией, у неё есть вполне конкретный автор, если кого-то интересует вопрос разработки собственной такой библиотеки, возможно стоит почитать эту статью — https://abdullinru.ru/biblioteka-nikolaevevgegeoip.html - в ней автор даёт интервью и рассказывает о том с какими вопросами он столкнулся в рамках работы над библиотекой и как они были решены, а так же рассказывает о планах развития библиотеки.

Смотрите также:

Отложенная загрузка скриптов на примере Яндекс Карты и виджета группы ВКонтакте

Определение города посетителя по IP и вывод его в нужном падеже

Карта России с дополнительной информацией по субъектам

Добавить комментарий:

Ваш комментарий отправлен!

Комментарии:

  • Евгений:

    не надо. уже сделал

    Ответить
  • Евгений:

    Нет ли возможности развнуть ваш пример:

    <?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 'Не удалось определить локацию';
    }
    ?>

    на все определяемые параметры?

    Скольок запросов в месяц может обрабатать эта программа? Есть ли какое-либо огрнаичение на количество обрабатываемых запросов в месяц, а год или всего?

    Ответить
  • Олег:

    Точность совсем никакая. У меня показало что я в Камышено, я даже не знаю где это. А я в Ростовской области. У нас сервисы часто показывают Краснодарский край, но это то хоть рядом, примерно 60 км. А про Камышин я вообще не слышал.

    Ответить
    • Макс:

      Кажется, Камышин в Волгоградской области.

      Ответить
  • Vik:

    И сразу сюрприз: в примере определяется, что я в городе Vlaardingen, а это в ста километрах от меня. Так что точность кода так себе.... ((

    Ответить
    • Alexander:

      Это не точность кода, а точность сервиса ip-api.com

      Ответить