Private-Bookers
Техника сетевых атак
вернуться

Касперски Крис

Шрифт:

Что можно сделать с помощью Perl (глава для начинающих)

O В этой главе:

O История создания языка Perl

O Назначение и возможности Perl

O Демонстрация возможностей Perl

«…программисты слишком часто обвиняют в грехах именно себя. Программистам нужно меньше времени тратить на оправдания. Если программирование не интересно, мы не будем убеждать других стать программистами» Ларри Уолл

Народная молва утверждает, лучше, дескать, один раз увидеть, чем сто раз услышать. Поэтому, вместо пылкой агитации за изучение языка Perl, ниже будет приведен один маленький, не самый эффектный, но достаточно оригинальный эксперимент. Как известно, большинство серверов новостей Usenet часто сильно перегружены и не отличаются завидной скоростью. А сами конференции порой содержат тысячи сообщений, просматривать которые в on-line весьма медленно и накладно.

Между тем, текстовые сообщения легко сжимаются любым архиватором в несколько раз, - будь сервер малость поумнее, - он мог бы передавать упакованный поток данных на компьютер клиента, заметно уменьшая сетевой трафик.

Но такую операцию не трудно осуществить и самостоятельно: выбрать сервер с быстрым каналом, установить на нем клиентскую программу, которая умела бы читать сообщения из выбранной конференции, упаковывать их и выкладывать на быстрый FTP, поддерживающий докачку.

Ниже приведена одна из возможных реализаций такой программы (на диске, прилагаемом к книге, она находится в файле “/SRC/nr.pl”). В качестве упражнения зайдите telnet-ом на hobbiton.org (смотри главу «Удаленное выполнение программ») и наберите следующий текст в редакторе vi:

· #!/usr/local/bin/perl

· use Socket;

·

· #Настойки по умолчанию

· #$server='mailserver.corvis.ru';

· #$server='oberon.rnd.runnet.ru';

· $server='news.fido7.ru';

· $group='fido7.ru.nethack';

· $listfile='list.txt';

· $msgfile='msg.txt';

·

· print "NNTP Reader Version 2.0 (c) 2000 Kris Kaspersky\n";

· print "Open nf.cfg file…";

·

· #Попытка взятия настоек из файла

· if (open(FH,"nr.cfg"))

· {

· print "OK\n";

· $server=«FH»;

· $server=~ s/\n//;

· $group=«FH»;

· $group =~ s/\n//;

·}

· else

· {

· print "fail\n";

·}

·

· print "Server [$server]:";

· $tmp=«»; if (length($tmp)»2) {$server=$tmp; $server=~ s/\n//;}

·

·

· print "Command (MSG|LIST|EXIT):";

· $tmp=«»;

·

· if ($tmp=~/MSG\n/)

· {

· print "Group [$group]:";

· $tmp=«»;

· if (length($tmp)»2) {$group=$tmp; $group=~ s/\n//;}

· getmsg;

·}

·

· if ($tmp=~/LIST\n/)

· {

· LIST;

·}

·

· if ($tmp=~/EXIT\n/)

· {

· EXIT;

·}

·

· #Сохраняем настойки в файле

· if (open(FH,"»nr.cfg"))

· {

· print FH "$server\n";

· print FH "$group\n";

·}

· close (FH);

·

·

· sub getmsg

· {

·

· $cmdcount=0;

· print "Connecting to $server…";

· socket(NNTP, PF_INET, SOCK_STREAM, getprotobyname("tcp") || 6);

  • Читать дальше
  • 1
  • ...
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • ...

Private-Bookers - русскоязычная библиотека для чтения онлайн. Здесь удобно открывать книги с телефона и ПК, возвращаться к сохраненной странице и держать любимые произведения под рукой. Материалы добавляются пользователями; если считаете, что ваши права нарушены, воспользуйтесь формой обратной связи.

Полезные ссылки

  • Моя полка