Направляйте пользователей на веб-страницу в зависимости от их города

Привет,

Мы хотим перенаправить наших пользователей на одну из наших веб-страниц, соответствующую их городу (местоположение основано на IP-адресе пользователя и с использованием некоторых баз данных местоположения IP)

У меня вопрос, как заставить его работать быстро? например, в gropoun веб-сайта всякий раз, когда пользователь посещает, он мгновенно перенаправляет пользователя на страницу своего города.

Спасибо.

Изменить: мы используем PHP


person texpert    schedule 20.09.2010    source источник
comment
Что ты используешь? PHP?   -  person Evert    schedule 20.09.2010


Ответы (4)


Вы хотите сделать это на стороне сервера или клиента? Если на стороне клиента (например, с использованием javascript), вы можете использовать одну из многих доступных сервисов geoip. В частности, это YGL от Yahoo !.

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

Вам также потребуется «по умолчанию» указать регион или почтовый индекс, поскольку каждый IP-адрес не может быть определен. Например, одно веб-приложение, над которым я сейчас работаю, имеет аудиторию в США на 95%, поэтому по умолчанию используется географический центр страны - 66952.

person Kris Krause    schedule 20.09.2010
comment
Хорошая работа, Крис, расширяю свой ответ, используя серверную часть, возможно, быстрее, так как это означает, что вы можете сразу направить пользователя. Вместо того, чтобы ждать, пока клиентская сторона загрузится, а затем перенаправить. Однако я думаю, что у вас больше шансов найти бесплатные версии на стороне клиента, чем на стороне сервера. - person Alex KeySmith; 20.09.2010

Вы должны определить ip пользователя из httpRequest, после чего использовать какую-то базу данных, например geoip

person user12384512    schedule 20.09.2010

Кеш, кеш, все кешировать. Кэшируйте поисковые запросы в вашей таблице IP-адресов, кешируйте результаты для отдельных пользователей в их сеансе или файлах cookie, кешируйте часть отображаемой информации о локализации ваших страниц (или, по крайней мере, части, интенсивно использующие запросы).

Могут быть предоставлены более подробные сведения, но все зависит от ваших узких мест. (В конце концов, нет смысла реализовывать сложное кеширование на стороне маршрутизации, если узким местом является рендеринг локализованной информации, потому что ваши вызовы БД выполняются почти за полсекунды). Я не могу сказать вам, где находятся / будут узкие места в вашем приложении. Сначала вам нужно профилировать его, а затем оптимизировать на основе того, что вам говорит профилировщик.

person Sean Vieira    schedule 20.09.2010

Я сделал это для нескольких клиентов на стороне сервера, используя службу поиска http://ipinfodb.com/ip_location_api.php.

Просто не забудьте сохранить IP-адреса и местоположения в базе данных, чтобы не выполнять избыточный поиск. Я использовал данные часового пояса, чтобы определить регион посетителя.

person Will    schedule 20.09.2010