Как стать автором
Обновить

IP География

Время на прочтение 2 мин
Количество просмотров 14K
Недавно мне пришлось иметь дело с программой для ведения статистики кликов некой системы обмена объявлений. При щелчке как обычно собиралась информация о клике (на какой странице произошло, во сколько, браузер, ИН объявления и IP). В представлении статистики состояла задача — узнать город из которого произошел переход. Раньше я этим не интересовался особо поэтому только сечас у меня началось более глубокое знакомство с GeoIP системами.

Кроме того как это удалось

Сперва я вспомнил о всяких там geoip таблицах, которых сейчас можно найти без особых затруднений сложнее чем раньше. Но сокращенные варианты лежат на сайтах-собирателях баз. Ниже один из них

сокращенная база
maxmind.com — сам сайт. там же можно и проверить geoip базу.

Вариант в моем случае отпал — пришлось бы весь список, а он не маленький и делать выборки из таблиц. а через некоторое вермя надо будет обновлять таблицу. вобщем лень заставила меня искать другие пути. пока искал нашел интересный сервис http://geoiptool.com/ который выполняет стандартную операцию любого geoip сервиса, но еще и накладывает на гуглокарту.



Очень забавно. Хабр — тут

В итоге я нашел http://www.ip2city.ru/ — открытую базу IP адресов. На нем я и остановился. Что же выделило его среди других сервисов, так это возможности предоставления данных вида
field1=value1
field2=value2

что вызывается простым get запросом www.ip2city.ru/ip2city.php?ip=ххх.ххх.ххх.ххх

а такие данные достаточно легко принимаются со сторонних серверов и парсятся

$IP = «00.00.00.00»; // или ай-пи откуда угодно (в моем случае из БД)

$lines = file('http://www.ip2city.ru/ip2city.php?ip='.$IP);

$city = trim(str_replace('=','',strstr($lines['0'],'=')));

$country = trim(str_replace('=','',strstr($lines['4'],'=')));

Естественно при такой работе PHP будет долго рисовать страницу, пока не примет все данные с сервера (сам парсинг проходит быстро), так что я бы рекомендовал операцию IP -> город производить после загрузки страницы.

Это мой первый топик, заранее прощу прощения за ошибки. Надеюсь кому-нибудь пригодится
Теги:
Хабы:
+16
Комментарии 32
Комментарии Комментарии 32

Публикации

Истории

Работа

PHP программист
175 вакансий

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн