XAKEPok Posted July 27, 2009 Report Share Posted July 27, 2009 Доброго времени суток. Подскажите пожалуйста, может кто использует у себя функцию для определения города по IP-адресу. Если у кого есть, поделитесь плиз. Язык PHP Link to comment Share on other sites More sharing options...
Сергей Сергеев из Курска Posted July 28, 2009 Report Share Posted July 28, 2009 http://www.netip.de/ для начала. This service provide geographic location information (city, country, postal code, latitude and longitude). У меня сеть еле тянет, кажется, именно на этом сайте показывает карту, а на ней pin'ом (гвоздиком) красиво местоположение. Точно он. Карту рисует. Он. Но грузится у меня долго. Я - Курск, пожалуйста, коллеги - Белгород, пожалуйста, национальная почтовая служба - Москва, пожалуйста. Только здание не показывает. :D Wandering IPs - программа загружает из Нета базу - 15 метров. И voi-la. Виджеты для Оперы. Завтра будет гораздо больше и подробно. Только зачем тут PHP? Вопрос о каком-то личном сайте, при входе на который, тебе IP твой показывает? Это другой вопрос. Но найти можно. Тоже мне проблема. Link to comment Share on other sites More sharing options...
XAKEPok Posted July 28, 2009 Author Report Share Posted July 28, 2009 Я на своём сайте использую самописную баннерную систему. Она работает отлично. Мне нужно что бы баннеры менялись в зависимости от города. Вот и ищу функцию, которая принимает IP посетителя и возвращает город, которому этот IP принадлежит. Link to comment Share on other sites More sharing options...
Сергей Сергеев из Курска Posted July 28, 2009 Report Share Posted July 28, 2009 1. Если для начала просто определять IP, так, например, при входе на главную страницу там, где расположена эта программа, показывается твой IP и даже браузер. Может автор поделится идеями. 2. Обязательно зайди вот сюда. Там много чего интересного. 3. In this section, you can find the list of all major IP address blocks allocated for each country. Список IP-адресов в формате CSV по странам. Хотя там России нет, не вижу, зато есть Украина. Еще не города, но уже первый шаг. 3. Не забывай про программы, использующие инструменты Ping, Trace, Whois. Например, SI Network Mechanics. Может они натолкнут на мысль. ! Предупреждение:Artur88: Вчитайтесь в 1 пост данной темы и далее проведите анализ своих сообщений. просьба в дальнейшем не давать советы которые не имеют отношения к решению проблемы в теме Link to comment Share on other sites More sharing options...
edde Posted July 28, 2009 Report Share Posted July 28, 2009 Сергей Сергеев из Курска прекратите давать бестолковые советы по тематике, в которой ничего не смыслите. Link to comment Share on other sites More sharing options...
Форматцевт Posted July 29, 2009 Report Share Posted July 29, 2009 XAKEPok: Страна по IP и # <?# # function ip2country($ip) {# global $OOPSGlobal;# # $country1 = 'NA';# $country2 = '-';# # $ipn = (float) sprintf("%u", ip2long($ip));# # if (!eregi ("^(127|10|172\.16|192\.168)\.", $ip)) {# # $SQL = "# # SELECT# *# FROM# ip2country# WHERE# start_long <= {$ipn} AND stop_long >= {$ipn}# # ";# # $row = $OOPSGlobal['SES']->db->QueryObject($SQL);# # if($row) return array($row->country,$row->country_name,$row->start_ip,$row->stop_ip);# # }# if (eregi ("^(127|10|172\.16|192\.168)\.", $ip)) {# return array('XXX','Local/Grey NetWork(s)','','');# }# # return array($country1,$country2,'','');# # }# # ?> а город что бы определить нужна просто база, а алгоритм тот же. Link to comment Share on other sites More sharing options...
XAKEPok Posted July 29, 2009 Author Report Share Posted July 29, 2009 Indomito, спасибо огромное! Link to comment Share on other sites More sharing options...
Форматцевт Posted July 31, 2009 Report Share Posted July 31, 2009 XAKEPok: не за что :) Кстати я далёк от веб-строительства, просто достаточно воспользоваться поисковыми системами, на 80-90% вопросов есть ответы в интернете, что я кстати и сделал :) Link to comment Share on other sites More sharing options...
XAKEPok Posted July 31, 2009 Author Report Share Posted July 31, 2009 Да я уже нашел базу ip достаточно массивную. Могу выложить. Одно плохо - база 23мб. При импортировании загрузка на сервер большая, не каждый хостер пропускает. Мой например нет) Link to comment Share on other sites More sharing options...
XAKEPok Posted August 18, 2009 Author Report Share Posted August 18, 2009 Если кому интересно. выкладываю: Дамп базы с IP (сори что на летитбит. Залил на то что было в соседней вкладке открыто) Структура базы: ID (autoincrement), начальный IP - конечный IP - город - регион - округ Начальный и конечный IP сгенерированы функцией ip2long. База в UTF-8. Вот пример определения города: function get_city($link) {$ip = ip2long($_SERVER["REMOTE_ADDR"]);$result=mysql_query("SELECT * FROM geo WHERE ip1<='$ip' AND ip2>='$ip' LIMIT 1", $link); while ($row = mysql_fetch_array($result)) { $city = iconv("UTF-8", "windows-1251", $row['city']); return $city; }} $link здесь - указатель на соединение с базой. Если не нравится структура запроса можете поизвращаться с BEETWEEN'ом, но я б не советовал. Функция берёт IP и возвращает город, которому он принадлежит. База в UTF-8, поэтому что б вывести город в Windows-1251, перекодируем полученный город с помощью iconv. У меня сайт в windows-1251, если у вас в UTF-8, можете убрать преобразование и выводить город без него. Link to comment Share on other sites More sharing options...
kosmom Posted October 19, 2009 Report Share Posted October 19, 2009 Насколько мне известно, данный проект еще затевал Ру центр http://ipgeobase.ru/cgi-bin/Software.cgi Link to comment Share on other sites More sharing options...
Recommended Posts