Что делать, если перестало работать определение города по IP
Время прочтения - 1 мин.
В своих проектах мы часто используем технологию GeoIP — определяем местоположение посетителя сайта по IP-адресу.
Причины использовать технологию GeoIP
- Можно персонализировать контент в зависимости от местоположения пользователя. Например, петербуржец видит акции и услуги, доступные в Петербурге.
- Язык сайта, валюта и прочие геоданные выбираются автоматически.
- Безопасность сайта выше — например, можно ограничить доступ к определенным разделам из разных регионов.
Как работает GeoIP
GeoIP обращается к специальным базам данных, в которых каждый IP-адрес привязан к конкретному городу, стране или координате. Доступ к таким базам обычно платный, но есть и бесплатные (правда, они бывают неточными).
Варианты подключения к базе данных
- Зарегистрироваться в сервисе, предоставляющем доступ к базе данных. Таких сервисов много. Регистрируемся, получаем доступ через REST API — и готово! Главный минус — мы полностью зависим от стороннего сервиса, и при любых неполадках определение по IP перестает работать.
- Скачать базу на свой сервер. Этот вариант лучше и надежнее, но придется постоянно заботиться об актуальности данных в базе.
До этой весны мы использовали сервис Sypex Geo. Качество вполне устраивало — 60-90% точность определения местоположения считается хорошим показателем для подобных сервисов.
На сайте пользователь либо подтверждал правильность определенного города, либо мог выбрать другой:
Но с этой весны Sypex Geo не работает.
Как мы это обнаружили
Мы работали с Sypex Geo так: хранили их базу данных на своем сервере, а они регулярно отправляли нам обновления. Таким образом мы не зависели от отключения их серверов и всегда имели свежую базу IP-адресов.
В один прекрасный день база данных не обновилась. Как оказалось, Sypex Geo перестал работать в России. Сразу же начали искать аналоги. Выбирали из тех, кто точно должен остаться работать в стране. В итоге в шорт-лист попали:
- API Яндекс.Карт
- 2gis
- DaData
По результатам тестов выбрали API Яндекс.Карт и интегрировали его в свои проекты.
У APIЯндекс.Карт есть три огромных плюса:
- хорошо определяет местоположение
- прост в интеграции
- бесплатен!
Так что мы полностью довольны своим выбором.