Php скрипт определения оператора по ip. Sypex Geo — быстрое определение города по IP. Узнаем страну юзера и не только

Отображать город посетителя для улучшения конверсионных показателей магазина. Готовый код вставки в любое место сайта с указанием города, региона и страны. Я перелапатил много скриптов, но именно этот оказался самым простым и результативным! Я использовал его при создании сайта www.mzm-market.ru , где скрипт выводит «доставка в______»

Втавляем в index.tpl (или на странице доставка) в любом нужном месте cледующий код:



window.onload =function(){
jQuery("#user-city").text(ymaps.geolocation.city);
jQuery("#user-region").text(ymaps.geolocation.region);
jQuery("#user-country").text(ymaps.geolocation.country);}


Вывод производится с помощью:

// страна, город, регион.
geolocation.country, geolocation.city, geolocation.region

Хочу немного дополнить данный пост (редакция от 18.02.2017).

При использовании вышеописанного скрипта во многих городах и браузерах просто ничего не отображалось и после долгих поисков я нашел наверное самый работоспособный скрипт определение страны, региона, города через яндекс API. Проверял его через своих клиентов, которые находятся практически по всей России и за её пределами и этот скрипт показал себя отлично! Вот скриншот моего клиента:

Сами понимаете что всё опредилилось чётко! Ну не буду вас мучать писаниной и приведу пример!

js Определение страны, области, города через яндекс API

Просто вставьте этот код между тегами




$(document).ready(function(){
ymaps.ready(function(){
var geolocation = ymaps.geolocation;
$("#cou").html("Ваша страна: "+geolocation.country);
$("#tow").html("Ваш город: "+geolocation.city);
$("#reg").html("Ваш регион: "+geolocation.region);
});
});

А этот код в нужное место на своей странице:

Ваша страна: ... определяется...
Ваш город: ... определяется...
Ваш регион: ... определяется...

Демонстрация

Ваша страна: ... определяется...

Ваш город: ... определяется...

Ваш регион: ... определяется...

Скрипт работает без проблем, но возможно, что для тех кто находится в маленьких селениях скорее всего город определиться неверно, а будет определён город вашего интернет провайдера.

От автора: в интернете ваше имя и фамилия ничего не значат. Здесь для определения юзера используется IP. Зная его, можно установить город и страну проживания человека, используемый браузер…. Не верите? Все это вы поймете, когда изучите в PHP определение IP.

IP и не только

Для получения сетевой информации пользователя в PHP существует глобальный массив $_SERVER. Давайте выведем его содержимое на экран:

Теперь мы знаем, что IP записывается в REMOTE_ADDR. Откуда она берется? Все эти данные клиент пересылает во время установки соединения. Эта переменная задается в настройках сервера на стороне клиента.

Некоторые для определения города по IP в PHP используют значения HTTP-заголовков, но это в корне неверно. Любой пользователь может прописать значения заголовков для своего хоста. Также следует понимать, какой IP вам нужен. Например, значение HTTP_X_FORWARDED_FOR содержит адрес удаленного клиента, его прокси или может быть вообще пустым. Короче, тут разбираться не на один вечер хватит .

Что касается браузера пользователя, то его можно попробовать определить с помощью функции get_browser (). Но для ее применения на стороне клиента в файле php.ini должен быть прописан путь к browscap.ini. Иначе получите подобное предупреждение:

Узнаем страну юзера и не только

Теперь с помощью PHP определим страну по IP. Но для начала проведем обзор всех решений в этой сфере. Большая часть подобных скриптов использует упомянутый нами элемент глобального массива $_SERVER REMOTE_ADDR. Теперь начинается самое главное.

Можно использовать уже , в которых полученный IP просто сортируется в зависимости от своего значения. Надеюсь, для вас не является секретом, что это значение присваивается клиенту (хосту) в зависимости от его геолокации: страны, города и региона проживания пользователя. На анализе этих диапазонов и построен весь функционал.

Также применяются различные сторонние сервисы наподобие ip-whois.net. С помощью скрипта вы передаете значение IP, а тот возвращает вам данные о нахождении хоста.

Кроме этого часть специализированных библиотек поставляется со своей базой данной, в таблицах которых содержатся все рассортированные (по географии) диапазоны IP. Я не буду их перечислять. Таких в Сети сейчас хватает.

Решать вам. Применение стороннего сервиса позволит снизить затраты ресурсов и нагрузку на ваш сайт. При этом использование библиотеки с базой избавит от проблем с подключением.

В следующем скрипте для определения региона по IP PHP используется библиотека TabGeo. Сейчас ее официальный ресурс не работает. Я скачал библиотеку с GitHub, но использовал только файл country.php. В нем по полученному IP определяется страна проживания пользователя. И затем (по ISO-коду) можно реализовать редиректы на различные страницы сайта: