Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > n2h2 на Perl скрипте |
Автор: dopod 16.12.2009, 03:10 |
Есть интересная идея, описанная в статье аж от 2004 года. http://www.opennet.ru/base/cisco/cisco_banner.txt.html n2h2 на основе Perl. Если ли тут Перлы в данном языке, которые не жутко заняты и смогут помочь немного с данным скриптом. Уже есть два вопроса. 1. Как можно узнать какой синтаксис ждет скрипт от файла banners.txt 2. При попытке запуска скрипта, через пол минуты перестает работать из-за утечки памяти. |
Автор: arto 16.12.2009, 10:03 |
1. регулярные выражения 2. надо запускать. |
Автор: dopod 16.12.2009, 14:56 |
регулярные выражения для url это *r.mail.ru* или для Пэрла регулярные эт другие? А "надо запускать" это значит не сможете помочь? |
Автор: arto 16.12.2009, 15:25 |
1. perldoc perlre 2. у меня нет cisco под опыты |
Автор: amg 16.12.2009, 16:07 |
*r.mail.ru* - это не регулярное выражение, это что-то больше похожее на маску файлов. Правильно будет без звездочек. А еще более правильно - заэкранировать точки (точка в регулярных выражениях означает любой символ), т.е. r\.mail\.ru Добавлено через 6 минут и 26 секунд Самый простой рецепт - в файле banners.txt в каждой строке давать часть урла, экранируя обратным слешем все не алфавитно-цифровые символы. |
Автор: arto 16.12.2009, 16:27 |
или использовать Text::Glob |
Автор: dopod 16.12.2009, 17:05 |
arto, Да можно и не иметь циску, мне сейчас не понятно почему скрипт пишет out of memory! to all Люди я в перле вообще ни чего не понимаю, поэтому вот такое "Text::Glob" меня немного пугает. Про точки я понял знаю что означает любой один символ и все же если нужно любой-текст\.r\.mail\.ruлюбой-текст как быть если это не подходит *\.r\.mail\.ru* ПС Хочу просто запустит скрипт чтоб он не вылетал и слушал заданные ему порты! |
Автор: arto 16.12.2009, 17:08 |
у меня скрипт запускается и слушает порты и не вылетает. |
Автор: dopod 16.12.2009, 17:44 |
А вы под чем запускаете вин или linux В файле есть строчка с выражением ? |
Автор: dopod 17.12.2009, 00:21 |
запустил perl -w H:\Temp\n2h2\n2h2.pl получил Use of uninitialized value $_ in scalar chomp at H:\Temp\n2h2\n2h2.pl line 15. 12 my @banners; 13 open (FILE, 'H:\Temp\n2h2\banners.txt') || die "Can't open file"; 14 while(){ 15 chomp; 16 push(@banners, $_); 17 } |
Автор: arto 17.12.2009, 01:06 |
open (FILE, 'H:\Temp\n2h2\banners.txt') || die "Can't open file"; my @banners = <FILE>; chomp @banners; close FILE; |
Автор: dopod 17.12.2009, 03:06 |
arto, Спасибо за помощь. Скрипт вроде работает и порт открывает на прослушивание. правда при настройке вылезли другие ошибки 3214: 002231: Dec 17 02:08:24.336 MSK: URLF:socket error, conn failed - fd 0 3213: 002230: Dec 17 02:08:24.336 MSK: URLF:got a socket read event- fd:0, urlf-srv:192.168.1.33, VRF: 3212: 002229: Dec 17 02:08:24.332 MSK: URLF:received a wrong event вот это настораживает !!! 3211: 002228: Dec 17 02:08:24.332 MSK: URLF:server connecting (socket fd 0) 3210: 002227: Dec 17 02:08:24.332 MSK: URLF:Closing the socket for server (192.168.1.33:4005) 3209: 002226: Dec 17 02:08:24.332 MSK: URLF:got cache idle timer event... Но это уже другая история ! =) |
Автор: arto 17.12.2009, 09:24 |
firewall ? |
Автор: dopod 17.12.2009, 10:16 |
arto, Не совсем понял вопрос, но всёже. Это Cisco 2811, хочу в домашней мини сетке сделать что-то на подобе AdBlock для FireFox, но прозрачно. Хотелось запустить механизм фильтрации урл по регулярным выражениям. После настройки, дебаг начал рисовать такие сообщения, это очень огорчило 8( Пример в картинке, а в центре может быть любая циска с поддержкой урлфильтрации. |