Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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
Цитата(dopod @  16.12.2009,  14:56 Найти цитируемый пост)
регулярные выражения для url это *r.mail.ru*
*r.mail.ru* - это не регулярное выражение, это что-то больше похожее на маску файлов. Правильно будет без звездочек. А еще более правильно - заэкранировать точки (точка в регулярных выражениях означает любой символ), т.е. r\.mail\.ru

Добавлено через 6 минут и 26 секунд
Самый простой рецепт - в файле banners.txt в каждой строке давать часть урла, экранируя обратным слешем все не алфавитно-цифровые символы.

Автор: arto 16.12.2009, 16:27
или использовать Text::Glob

Автор: amg 16.12.2009, 16:44
Цитата(arto @  16.12.2009,  16:27 Найти цитируемый пост)
или использовать Text::Glob
Нда.. Такой совет, по сути совершенно верный, в данном случае попахивает утонченным издевательством smile 
Цитата(dopod @  16.12.2009,  14:56 Найти цитируемый пост)
регулярные выражения для url это *r.mail.ru*
или для Пэрла регулярные эт другие?


Автор: 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(

Пример в картинке, а в центре может быть любая циска с поддержкой урлфильтрации.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)