Цитата из Википедии — свободной энциклопедии
Геотаргетинг (англ. geo targeting) — в веб-разработке и интернет маркетинге, метод выдачи посетителю содержимого, соответствующего его географическому положению. Региональная привязка позволяет сайту перестраивать контент для различных регионов.
В функционале многих сайтов часто заложена функция определения города посетителя и вывод информации в зависимости от того, с какого города зашли на их на сайт. Плюсы этой «хитрости» очевидны. Фирмы, которые работают на несколько городов могут показывать номер телефона для конкретного города, сайты знакомств могут сразу предлагать город для поиска анкет, интернет магазины могут предлагать тариф доставки для своих потенциальных клиентов и многое другое. Естественно, определение города сработает не в ста процентах случаев, т.к. некоторые сидят через прокси, некоторые используют usb-модемы операторов сотовой связи — в этом случае город будет определяться неверно. Но для оставшегося большинства случаев определение города по ip алресу пользователя работать будет и этим нужно воспользоваться — главное в мирных целях =)
Предлагаю посетителям моего блога готовое решение (php функцию) для определения города по ip посетителей!
Прилагаю небольшой zip архив. В архиве php файл с функцией определения города по IP
Внимание! Скрипт для геотаргетинга обновился. Подробности в этом посте.
Подскажите, пожалуйста, чайнику (т.е. – мне), как из $REMOTE_ADDR (на PHP) получить следующие 3 (4) переменные: $страна, $регион, ($округ), $населённый_пункт.
Мои попытки использовать скачанные базы данных адресов упирались в потолки (ограничения) по объёму дискового пространства, % загрузки процессора сервера и выделенной памяти на бесплатном хостинге. Поделив базу на 100 с лишним частей и введя предвыбор, к которому из файлов БД обращаться, мне удалось с точностью до 95% определять страну посетителя сайта. Но, поскольку БД периодически обновляются, число ошибок и неясностей со временем растёт. А с определением региона и, тем более, города – вообще – полный швах.
Посещаемость моего сайта не превышает десятков хостов и немногих сотен хитов, но я надеюсь, что несколько (но уж никак не в десятки раз) вырастет со временем.
Насколько я понимаю, небольшая переделка Вашего скрипта может обеспечить такое определение, но я не обладаю достаточными навыками, чтоб это реализовать.
Буду очень благодарен за ответ и/или советы.
В идеале я вижу функцию, получающую $REMOTE_ADDR и возвращающую 3 (4) переменные $страна, $регион, ($округ), $населённый_пункт. Наиболее актуально определение стран, регионов РФ, областей Украины, «государств» ЕС и штатов США.
Не обладая хоть элементарным опытом, вряд ли ты сможешь реализовать поставленную задачу. На самом деле мой скрипт даст понять как пользоваться сервисом, который я указал в посте. Мой скрипт работает через известный многим сервис http://ipgeobase.ru/ там же на этом сайте есть примеры как отправлять запросы и получать ответы. Если что-то не понятно — пиши. Если будет время — помогу
Спасибо за скрипт. Второй день искал подобное.
Только беда вот: в опере нормально выводится а в других браузерах кодировка не та. Вот например вместо Тулы: Тула
Подскажите пожалуйста как поправить.
Если проблемы с кодировкой то:
везде кодировки должны быть одинаковы, например, UTF-8
Да с utf-8 всё нормально. В dle только всё равно не utf-8.
А сделал файл в WINDOWS-1251 и htaccess в AddDefaultCharset WINDOWS-1251, то скрипт перестаёт определять город.
Тогда используй функцию
iconv(‘utf-8’, ‘windows-1251’, ‘текст’)
чтобы менять кодировку из utf-8 в windows. чтобы проделать обратное нужно переставить название кодировок
Спасибо. Всё получилось.
Последние вопросики:
1) Там не будет ограничения по запросам?
2) Если добавить около 50 городов оно всё не ляжет?
3) Если маленький городок, он его тоже определит? А то ведь айпишники у маленьких городов совпадают с областными центрами.
Всё зависит от ip адреса и провайдера. Например у сёл и поселков в моем регионе показывается столица — Казань. Так как ip адреса провайдера именно так зарегистрированы. Насчёт маленьких городов — не знаю. По дополнительной информации насчет определения можно посмотреть тут http://ipgeobase.ru/
поставил скрипт на хостинг, там работает, а вот локально на денвере не хочет, куда копать?
большое спасибо
Возможно не хватает нужных раcширений php