GEO IP

scorpion-ds

Новичок
Подскажите, каким образом лучше определять от куда зашел пользователь?

https://www.maxmind.com/ - вот эта служба, я так понимаю по сути монополист
http://ip-api.com/ - вот еще есть служба, но там нет БД "на вынос"

В основном скрипты базируются на первом сервисе, но там драконовские цены, а второй работает через запрос к сервису, мне такой подход не очень нравится.

Может, есть какой-то более оптимальный вариант?
 

scorpion-ds

Новичок
Спросить у самого пользователя - не вариант?
Не вариант, цели такие:
- пользователь заходит на Интернет-магазин и ему сразу показываются телефоны поддержки его региона;
- пользователь заходит в каталог "предприятий" и ему в первую очередь показываются "предприятия" его региона.
 

AnrDaemon

Продвинутый новичок
Не вариант, цели такие:
- пользователь заходит на Интернет-магазин и ему сразу показываются телефоны поддержки его региона;
- пользователь заходит в каталог "предприятий" и ему в первую очередь показываются "предприятия" его региона.
Не его региона, а региона, угаданного на основании косвенных данных. (Ещё не факт, что посетитель ищет информацию для своего региона, даже если угадано правильно!)
 

scorpion-ds

Новичок
c0dex,тогда значение по умолчанию.

AnrDaemon, согласен, примерно такие же доводы приводил против это фичи, но есть желание это получить на сайте. Пока я откладывают это "на потом", так как считаю маловажной проблемой, показ "локализованных" телефонов.

Другом проекте уже сделали (не мой проект), там использовали ip-api.com, но такой вариант мне не нравится, так как на уровне PHP идет запрос сервису, который может перестать работать в любой момент, в итоге получим зависания при попытке определить регион, а это делается при каждом новом посещении сайта (до моего пинка вообще было при каждом обновлении страницы).
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
1. Определение региона по IP не исключает вопрос пользователю. Это делает, например, яндекс - выводит вопрос "Вы в Киеве?".
2. Запрос к стороннему сервису может быть уточняющий, асинхронный на js, а не из php, и с таймаутом, так, что ни на что не повлияет.
3. Все это - вопрос цены. Спроси у PMа бюджет задачи, то есть с количество времени, которые ты можешь на нее потратить.
Дай раскладку:
* тупое определение по базе - 2 часа
* тупое определение с возможностью указать регион руками - 1 день
* определение со всплывающим вопросом при смене ip - 2 дня
* определение по нескольким сервисам с вопросом - 3 дня

Пусть Абрам не спит. Если сопливый, как большинство PM-ов - пусть и жует сопли, а тикет будет на нем. Не факт что вообще надо будет делать, а если что - тикет на PMе с прямым вопросом.
 
Сверху