vestmar
1.06.2015 - 20:43
Добрый день!
Нужна идея, я уверен их даже несколько)
http://ru.myip.ms/files/bots/live_webcrawlers.txt вот база ip ботов, есть ли возможность её сократить,
например CIDR или через ip2long превратить в диапазоны, и что бы был как можно меньше размер в текстовом файле.
Перегоните в БД и все дела... Только да, надо через inet_aton. Там всего лишь чуть больше 100к записей. Потеряете больше на преобразовании в итоге...
vestmar
1.06.2015 - 21:22
Неее мне нужно в текстовом виде, без базы данных
попытался в ip2long перевести
$a = file('bots_ip.txt');
foreach($a as $b){
$c = sprintf("%u\n", ip2long($b));
file_put_contents('iptolong.txt', $c, FILE_APPEND | LOCK_EX);
}
Файл с нулями пишет..
Подскажите пожалуйста в чём тут дело?
killer8080
1.06.2015 - 21:35
Цитата (vestmar @ 1.06.2015 - 20:22) |
Файл с нулями пишет.. |
во первых там не каждая строка IP
во вторых в строку попадают символы перевода строки, нужно прогонять через trim()
vestmar, да зачем это нужно-то никак не пойму? "Запаковать" в подсети не получится - IP адреса идут не по порядку. Ну может быть процентов на 20 файл сократится, конечно... Ну хорошо, даже если на 50%, что утопия... Все-равно это 50к+ записей. Что вы будете делать с таким огромным файлом? Один фиг его ни в PHP нельзя эффективно использовать, ни где бы то ни было еще.
Вам для фаервола что ли? Я просто пытаюсь понять, что вы хотите в итоге получить от этого (нового) файла?
vestmar
1.06.2015 - 21:58
Просто проверку бота по ip. Быструю, без использования БД, у меня до этого была по CIDR прогоняла, но там мало этих диапазонов.
Прогнал через trim() , всё равно выводит один 0 на экране и всё!
killer8080
1.06.2015 - 22:02
Цитата (vestmar @ 1.06.2015 - 20:58) |
Прогнал через trim() , всё равно выводит один 0 на экране и всё! |
...
$c = sprintf("%u\n", ip2long(trim($b)));
...
так?
vestmar
1.06.2015 - 22:05
Вот!
$a = file('bots_ip.txt', FILE_IGNORE_NEW_LINES);
foreach($a as $b){
$c = sprintf("%u\n", ip2long(trim($b)));
echo $c;
}
killer8080
1.06.2015 - 22:30
echo $b;
что говорит?
Цитата (vestmar @ 1.06.2015 - 20:58) |
Быструю, без использования БД |
vestmar
1.06.2015 - 22:41
Цитата (Valick @ 1.06.2015 - 22:31) |
Цитата (vestmar @ 1.06.2015 - 20:58) | Быструю, без использования БД |
бугага-га-гага-гага-бу
|
АХАХАХАХХА))))
vestmar
1.06.2015 - 22:43
всё окей, в файле было дело, в массив не брался, я как регуляркой пройдусь \r\n по файлу, и всё.... почему то file() не прёт...
vestmar, открою вам секрет БД - это тоже теже самые файлы. Система управления написана на Си и годами заточена на работу с большими объёмами. Никогда у вас РНР не будет обрабатывать файлы быстрее чем база данных.
_____________
Стимулятор ~yoomoney - 41001303250491
vestmar
1.06.2015 - 22:56
Да я понимаю) я просто в этом не шарю...
vestmar
1.06.2015 - 22:58
Спасибо всем) Здесь по крайней мере меня не отправили думать и не послали) Как на другом форуме...
Хотя я привык, это же росия)
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.