Любому владельцу сайта интересно, откуда к нему приходят посетители, и эта статья, поможет ему в определении географии аудитории его сайта. Сервис выполняет привязку IP-адресов с точностью до конкретного населенного пункта, что дает возможность четкого определения аудитории.
Первым делом надо зарегистрировать в системе свой сайт, с которого будут исходить запросы к базе данных. Регистрация по этому адресу
После регистрации на указанный e-mail будет выслан код доступа к базе данных, который нужно указывать при каждом запросе к http://geo.stat-info.ru.
Данный сервис имеет один неприятный момент, а именно ограничение на количество запросов с одного сайта, на момент написания этой статьи можно было послать не более 500 запросов в 1 час. Скорей всего это ограничение сделано для экономии трафика, но нам оно не помешает, т.к. мы будем сохранять результаты обращения к http://geo.stat-info.ru в своей базе данных.
И так, создадим таблицу в MySQL
`ip` BIGINT( 10 ) NOT NULL ,
`country` VARCHAR( 35 ) NOT NULL ,
`city` VARCHAR( 35 ) NOT NULL ,
UNIQUE (
`ip`
)
) TYPE = MYISAM ;
В данной таблице будут храниться IP адреса с привязкой к стране и городу, поле IP имеет тип BIGINT т.к. выгоднее хранить не сам IP адрес, а результат работы функции sprintf(‘%u’,ip2long($ip)).
Получаем IP адрес пользователя
Преобразуем IP адрес
Код, полученный при регистрации на сайте http://geo.stat-info.ru/
Подключаемся к MYSQL серверу
{
print ‘Невозможно подключиться к базе данных!<br>';
exit();
}
Выбираем кодировку MYSQL сервера
{
print ‘Невозможно установить кодировку соединения с базой данных!<br>';
exit();
}
Выбираем базу данных
{
print ‘Невозможно выбрать базу данных!<br>';
exit();
}
Пытаемся получить информацию по IP адресу из MYSQL
if(!($dbresult = mysql_query($zapros, $dblink)))
{
print ‘Невозможно выполнить запрос к базе данных!<br>';
exit();
}
Проверяем результат запроса
{
Информация о IP адресе в базе данных отсутствует
Создаём XML парсер
Посылаем запрос к сайту http://geo.stat-info.ru/ и принимаем целый файл (XML)
Обрабатываем результат
Удаляем XML парсер
В цикле обрабатываем структуру XML и получаем нужные данные (город и страну),
т.к. ответ сервера в кодировке UTF-8 то сразу перекодируем в WINDOWS-1251
{
if($key[‘tag’]==’CITY’)
$result[‘city’]=iconv(‘UTF-8′,’WINDOWS-1251′,$key[‘value’]);
elseif($key[‘tag’]==’COUNTRY’)
$result[‘country’]=iconv(‘UTF-8′,’WINDOWS-1251′,$key[‘value’]);
}
Далее записываем данные в свою базу данных
if(!($dbresult = mysql_query($zapros, $dblink)))
{
print ‘Невозможно сохранить результат в базе данных!<br>';
exit();
}
}
В массиве $result содержатся необходимые данные
print_r($result);
print ‘</pre>';
Удачного геотаргетинга
Источник: woweb.ru