Маркетер
  • Маркетинг
  • Digital
  • Реклама
  • Public Relations
  • Менеджмент
  • Новости
  • Маркетинг
  • Digital
  • Реклама
  • Public Relations
  • Менеджмент
  • Новости
YouTube 154 Подписчики
Telegram 241 Подписчики
VK 0 Подписчиков
Маркетер
Маркетер
  • Маркетинг
  • Digital
  • Реклама
  • Public Relations
  • Менеджмент
  • Новости
  • PHP

Определение расположения по IP адресу на PHP

  • 13.06.2010

Рано или поздно каждый из нас сталкивается с вопросом определения города посетителя. Например, чтобы выдавать пользователю цены или наличие товара только для его региона. Да что там посетителя – любого IP, и как раз для этих целей существуют разные базы IP адресов, некоторые из них (как в нашей функции) очень удобно предоставляют данные через API.  Правда при этом можно столкнутся с проблемами. Например в некоторых случаях разные все подсетки принадлежат к Москве, а физически находятся в самых разных краях страны. Данный сервис обращается в базе данных Nic. Вот тут можно более подробно изучить информацию о возможных параметрах http://blog.ipgeobase.ru/?p=37 Стоит запрашивать информацию об одних и тех же ip постоянно. Это приведет к бану. Оптимальный вариант — кэш данных на неделю. Вы же не думаете, что провайдер будет переезжать из города чаще?
[sourcecode language=’php’] function geo_info($ip)
{
$xml = «»
. ««.$ip.»
«;
$ch = curl_init(«http://194.85.91.253:8090/geo/geo.html»);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
$result = curl_exec($ch);
if(curl_errno($ch) != 0)
die(«curl_errno(«.curl_errno($ch).»), curl_error(«.curl_error($ch).»)»);
curl_close($ch);
if (strpos($result, ‘Not found‘) !== false)
return false;
preg_match(«/(.*)<\/city>/», $result, $city);
return $city[1];
}[/sourcecode] Очень удобный API сервиса. Примеры применения:
[sourcecode language=’php’]/* Яндекс */
$city = geo_info(«213.180.204.8»); // Выдаст Москва

/* Новосибирский городской сайт */
$city = geo_info(«195.93.187.1»); // Новосибирск

/* Самарский инфопортал */
$city = geo_info(«195.128.128.21»); // Самара

/* Оф. сайт города Владивостока */
$city = geo_info(«93.88.6.150»); // Владивосток

/* «Санкт-Петербург.ру» */
$city = geo_info(«85.235.218.197»); // Санкт-Петербург

/* Неверный IP или данных нет в базе */
$city = geo_info(«000.000.000.000»); // Вернет false

/* IP адрес клиента */
$city = geo_info($_SERVER[«REMOTE_ADDR»]); // Вернет город посетителя
[/sourcecode]

4yvak

Предыдущий материал
  • Примеры рекламы

Мерседес в облаках

  • 13.06.2010
  • Sharzu
Read More
Следующий материал
  • Примеры рекламы

Рекламный ролик Honda Civic

  • 13.06.2010
  • lilcha
Read More
Вас также может заинтересовать
Read More
  • PHP

PHP — грамотная работа с файлами

  • Алексей Волков
  • 14.11.2009

Добавить комментарий

Для отправки комментария вам необходимо авторизоваться.

Свежие посты
  • Дайджест постов Сергея Людкевича
    • 12.09.24
  • Как юристы тормозят бизнес
    • 30.08.24
  • Продвижение оптовых кампаний в Яндекс Директ
    • 06.03.24
  • Cарафанное радио
    • 13.01.24
  • 5-55: История компании
    • 01.03.23
Маркетер
  • О проекте
  • Информационное спонсорство
  • Рекламным агентствам
  • Ссылки
(с) ООО "Маркетер". Официальный сайт. Маркетер: Статьи про рекламу, маркетинг, public relations, интернет

Введите ключевые слова для поиска и нажмите Enter