Определение географического положения по IP-адресу
Определение страны и города посетителя сайта по его IP-адресу применяется во многих случаях. Например, автоматическая подстройка языка отображения сайта, более точный таргетинг рекламных или информационных блоков сайта, разграничение доступа к разделам сайта для разных источников трафика, а также для многих других целей.
Наиболее полные базы географического положения IP-адресов в настоящее время предоставляет компания MaxMind в своей базе GeoLite City. Бесплатный вариант базы содержит данные с точностью до города, его можно скачать с сайта в бинарном формате (в распакованном виде около 30 мегабайт) и в формате CSV (в распакованном виде около 130 мегабайт).
На сайте также можно оформить подписку на коммерческие варианты базы, содержащие данные с точностью до улиц и обновляющиеся еженедельно, но это только если вашему проекту действительно требуется такая точность. Обновления бесплатной базы выходят регулярно, обычно в первых числах каждого месяца. Пример работы скрипта с коммерческой географической базой можно посмотреть на сайте MaxMind. Там же на сайте можно скачать бесплатные базы стран мира, почтовые индексы некоторых стран и много других полезных данных. К сожалению, самые вкусности предоставляются только за деньги.
Узнать местоположение
Доступ к базе осуществляется через API, для некоторых популярных языков программирования они расписаны на сайте. Например, для PHP, кроме собственно самой базы, потребуются еще файлы geoipcity.inc, geoip.inc и geoipregionvars.php. Вызов функции определения положения очень простой:
Результат работы скрипта будет следующим:
geoiprecord Object (
[country_code] => US
[country_code3] => USA
[country_name] => United States
[region] => TX
[city] => Houston
[postal_code] =>
[latitude] => 29.7755
[longitude] => -95.4152
[area_code] => 713
[dma_code] => 618
[metro_code] => 618
)
Отдельные параметры можно получить из соответствующих полей объекта. Для более оперативного доступа к данным можно хранить базу в памяти целиком (смотрите примеры в описаниях API на офсайте), но такое расточительное использование ресурсов допустимо только на выделенных серверах.
Для автоматического обновления базы я написал вот такой небольшой скрипт. Он выкачивает на мой хост архив GeoLite City в бинарном формате, а затем распаковывает его для дальнейшего использования. Время обновления вместе с загрузкой файла составляет 3-5 секунд, так что оно особо не повлияет на работоспособность даже высоконагруженного проекта.
Опытным путем установлено, что при слишком частом скачивании файла базы с сервера MaxMind с одного и того же IP-адреса (что-то около пяти раз в день), доступ блокируется на сутки. Поэтому обновляйте файл только когда это действительно нужно. У меня на сайте он обновляется по планировщику cron 10-го числа каждого месяца. Еще время от времени рекомендуется проверять наличие новых версий файлов API, они тоже иногда обновляются.
Как узнать местоположение человека по IP / Определить местоположение по IP / Адрес по IP
Для максимально точного таргетинга в пределах России можете дополнительно использовать данные IpGeoBase. База обновляется ежедневно, данные в ней хранятся в трех вариантах — master (разбивка по городам), slave (подробная информация по округам) и максимально подробная база с указанием районов и провайдеров. К сожалению, данные в базе хранятся в текстовом виде, по строкам, разделенными символами табуляции. На странице примеров можно скачать примеры интерфейсов для взаимодействия с он-лайн сервисом и для парсинга файлов базы. Готовых решений на PHP нет, возможно, что когда-нибудь сделаю.
GeoIP API для PHP 1.15
Источник: www.manhunter.ru
Автоопределение города по IP на сайте
Необходимость определить город посетителя на сайте актуально для интернет-магазинов или сайтов работающих в разных регионах. Это даст возможность показывать разные контакты, и изменять текст на страницах в зависимости от текущего местоположения пользователя. Самый простой и эффективный способ — это определить местоположение посетителя по его IP-адресу с помощью API Яндекс карт. Как это сделать рассмотрим в этой статье.
Подключите библиотеку jQuery и API Яндекс карт:
HTML-код
Ваша страна: Ваш регион: Ваш город:
JS-код
window.onload = function ()
Файл нужно запустить на хостинге, веб-сервере или локальном веб-сервере, таком, как например, Open Server.
Вывод текста в зависимости от текущего города
Следующий пример показывает, как можно изменять текст доставки в зависимости от города пользователя.
window.onload = function () < var city = ymaps.geolocation.city; if(city == ‘Москва’)< jQuery(«#user-city»).text(‘Доставка по Москве бесплатно’); >else < jQuery(«#user-city»).text(‘Доставка почтой по всей России’); >>
Список городов России
А вот список городов России, который вам возможно пригодится для реализации некоторых задач.
Если вам понравилась статья, вы можете отблагодарить автора любой суммой, какую сочтете для себя приемлемой:
Поделиться:
Остались вопросы по статье? Задайте их прямо сейчас!
Похожие записи
Если мы используем JavaScript, то некоторые действия по умолчанию нужно отменить. Самый распространённый случай это клик по ссылке. К примеру при нажатии должно появляться всплывающее окно, но по умолчанию браузер будет переходить по URL. Если в атрибуте href указать знак Читать далее
jQuery — это быстрая, небольшая и многофункциональная библиотека JavaScript, включенная в один файл .js. На данный момент это самая популярная библиотека JavaScript. JQuery облегчает жизнь веб-разработчика. Библиотека предоставляет множество встроенных функций, с помощью которых вы можете легко и быстро выполнять Читать далее
Сегодня я расскажу об одном отличном jQuery плагине о котором вы могли не знать. С его помощью можно быстро сделать живой поиск на странице сайта с множеством элементов. Называется он HideSeek. Плагин очень прост в использовании, но в то же Читать далее
Часто ли у вас случалось такое, что при заполнении формы на сайте истекал срок действия сеанса или например зависал браузер, после чего приходилось заполнять форму заново?! HTML5 представил концепцию механизмов хранения заполняемых данных в браузере. В хранилище HTML5 есть возможность Читать далее
Сегодня мы кастомизируем стандартный виджет Google переводчика для сайта и сделаем его в виде меню с флагами. На данный момент сервис Google Translate Widget больше не поддерживается, но это никак не отразится на сайтах, которые были подключены ранее. Наш кастомный Читать далее
В компонентах Битрикс есть встроенный функционал для AJAX подгрузки. Его так же можно использовать, например для бесконечного скролла новостей. Но есть и более простой способ, с помощью которого можно загружать ответ любого компонента без перезагрузки страницы. Его мы и рассмотрим Читать далее
Источник: it-blog.ru
Определение местоположения по IP
Чтобы бесплатно скачать этот плагин , перейдите в панель управления вашим сайтом и нажмите на кнопку «Включить» в разделе «Маркетплейс».
- Описание
- Отзывы о плагине (0 шт.)
Что делает плагин
Плагин определяет местоположение пользователя по его IP адресу, и запоминает его в Cookies браузера.
Плагин выводит по шорткоду блок в котором отображается местоположение пользователя, с возможностью выбрать другой город.
В настроках плагина можно выбрать города, которые будут предложены пользователю сразу, остальные можно будет найти, воспользовавшись поиском с подсказками.
Плагин содержит в себе большую базу городов и IP, поэтому могут возникнуть проблемы с установкой его через административную часть из-за ограничений сервера на размер загружаемых файлов.
Виталий 28.01.2017 11:06
Друзья, объясните, пожалуйста, что значит этот комментарий?
«Ирина, переместите код плагина вниз страницы, и спозиционируйте его средствами css, чтобы избежать индексации городов в качестве описания страницы.»
1. Есть ли вероятность наложения поисковиком санкций за невидимый индексируемый текст (города)?
2. Что нужно сделать, чтобы из бежать этого риска? (Как спозиционировать средствами CSS?)
Александр 07.02.2017 18:11
Никаких санкций за это быть не может, на каждом сайте что-то скрыто средствами CSS. Санкции бывают, когда вы скрываете от поисковиков то, что показываете посетителям.
Источник: moguta.ru