Непонятно, вы в качестве ID статьи используете параметр SECTION_ID??? или что?
Плохо воровать данные с чужих сайтов.
А если сайт сам отдает, то по обыкновению через XML можно получать обновления. + В большинстве случаев люди предоставляют API для чтения этих XML-ек.
Но если очень надо, то можно заказать. Или найти универсальный парсер, настроить и "импортировать". 🚬
Ура, достойное решение найдено.
Спасибо Pan Russian. Я сразу не обратил внимания на ПО предоставленное у них на сайте. Там есть скрипт на Perl.
В этом скрипте используют метод дихотомического поиска. Вообщем-то для данной ситуации самый оптимальный вариант.
В итоге: В худшем случае алгоритм работает: 0.5сек; в лучшем: 0.05; среднее: 0.2сек.
Еще раз всем спасибо, если кому-то потребуется скрипт обхода могу дать в личку :)
У меня без SQL, только по оригинальному файлу.
Всем спасибо за ответы. Про "Убрать разбивку на операторов" я уже думал. Есть 1 минус. Когда я обновлю базу, придется опять эту разбивку убирать и т.д.
По отзывам у maxmind плохое качество для РУ-траффа
Обрезание не очень пойдет. Есть вероятность, что диапазон который вырезали не имеется в точно таком виде в Базе. Наример:
У нас адрес: 62.220.34.168;
Получаем диапазон: 62.220.34.0 - 62.220.34.255;
В базе есть:
1) 62.220.0.0 - 62.220.38.255
2) 62.220.31.0 - 62.220.36.255
3) 62.220.37.0 - 62.220.37.255
4) 62.220.38.0 - 62.220.38.255
2,3,4 - входят в 1й. НО наш диапазон входит в 2, не в явном виде. Посему выйдет косяк :)
http://www.a1agregator.ru/
Это решение попробуйте прикрутить :)
+1 к ipgeobase. Спасибо Elles. Мне нужен тока РУ трафф.
lstaticl добавил 23.01.2010 в 12:29
Новая проблема: Базу решил брать ipgeobase. Как за минимальное время определить принадлежность поданного на вход IP к какому-либо региону?
У меня пока получается:
Берем левую и правую границу диапазона, проходим по всей базе и находим минимальный отступ нашего адреса от левой и правой границ. Считаем, что минимум - это и есть тот дипазон которому принадлежит данный адрес.
В базе 130к записей - следовательно такой процесс занимает не менее 3-4 сек. Хотелось бы свести время хотябы до 1сек, а лучше 0,5сек.
Как по-другому можно парсить?
Да никакой трудности с написанием нет) Вопрос изначально: Какую базу ИП использовать?? Возможно кто-то знает лучше чем те 2 которые я уже указал. Или кто-нить даст хороший отзыв о какой-либо базе приведенной выше.
ТДС) Траф распределять, если из МСК то на ссылку 1, если из СПБ -> link2 и т.д. Для этого надо геобазу с ИП. Я не вижу другого решения как можно разделить траф по географии