#!/usr/local/bin/perl use Tk; use File::Tail; #Main Window my $mw = new MainWindow; $mw-> title ("Packet Analyzer Tool"); my $frm_1 = $mw -> Frame() -> pack(); my $frm_2 = $mw -> Frame() -> pack(); my $frm_3 = $mw -> Frame() -> pack(); my $frm_4 = $frm_3 -> Frame(-relief => 'groove', -borderwidth =>2) -> +pack(-side => "left"); my $frm_5 = $frm_3 -> Frame() -> pack(-side => "right",-after => $frm_ +4); my $but1 = $frm_1 -> Button(-text => "Start", -command =>\&push_start) -> pack(-side => "left", -anchor => 'nw', -ipadx => 30, -ipady + => 35); my $but2 = $frm_1 -> Button(-text => "Stop", -command =>\&push_stop) -> pack(-side => "left",-after =>$but1, -expand => 1,-ipadx => + 30, -ipady => 35); my $but3 = $frm_1 -> Button(-text => "Pause", -command =>\&push_pause) -> pack(-side => "left",-after => $but2 ,-ipadx => 30, -ipady +=> 35); #21 my $but4 = $frm_1 -> Button(-text => "Exit", -command =>\&push_exit) -> pack(-side => "left", -after => $but3 ,-ipadx => 30, -ipady + => 35); my $filter = $frm_2 ->Entry(-width => 65) -> pack(-side =>"left",-anch +or => 's'); my $but5 = $frm_2 -> Button(-text => "Search", -command =>\&push_searc +h) ->pack(-side => "left", -after => $filter, -ipadx => 10); my $txt1 = $frm_4 -> Text(-width => 60, -height =>20) -> pack(-side =>"left",-anchor => 's'); my $srl = $frm_4 -> Scrollbar(-orient=>'v', -command =>[yview => $txt] +); $txt1 -> configure(-yscrollcommand =>['set',$srl]); #tie *STDOUT, ref $txt1, $txt1; #print "Fed up\n"; #$txt1 -> insert('end', "XXX"); $txt1 -> grid(-row=>1, -column=>1); $srl -> grid(-row=>1, -column=>2,-sticky=>"ns"); my $txt2 = $frm_5 -> Text(-width => 15, -height =>20) -> pack(-side=>"right", -anchor => 'e'); MainLoop; #73 #Executed START BUTTON sub push_start { chdir( "/var/log/snort"); foreach my $fol(glob "*.*.*.*") { print "Opening $fol\n"; chdir("/var/log/snort/$fol"); foreach my $subfile(glob "*:*") { print "opening $subfile\n"; push(@files,File::Tail->new(name=>"$subfile",debug=>$debug +)); } while (1) { ($nfound,$timeleft,@pending)= File::Tail::select(undef,und +ef,undef,$timeout,@files); unless ($nfound) { print "Nothing to print \n"; } else { foreach(@pending) { my $line = $_->read; if ($line =~ /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{1, +5} -> (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):(\d{1,5})/) { $txt1->insert('end', $_->{"input"}."(".localtime(t +ime).") IP:$1 PORT:$2\n"); } } } } } }
In reply to perl/tk: text output from tail function by terrance
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |