Difference between revisions of "PERL Examples"
Jump to navigation
Jump to search
PeterHarding (talk | contribs) |
PeterHarding (talk | contribs) |
||
| Line 52: | Line 52: | ||
close IN; | close IN; | ||
close OUT; | close OUT; | ||
</pre> | |||
==fix.pl== | |||
<pre> | |||
#!/usr/local/bin/perl | |||
open IN, "< xx.c"; | |||
open OUT, "> new.c"; | |||
$cnt = 0; | |||
while (<IN>) { | |||
chop(); | |||
/\/\/ <[0-9][0-9][0-9][0-9]>/ && do { | |||
s/[0-9][0-9][0-9][0-9]/%04d/; | |||
$l = sprintf $_, $cnt++; | |||
$_ = $l; | |||
printf "%s\n", $_; | |||
}; | |||
printf OUT "%s\n", $_; | |||
} | |||
close( OUT ); | |||
</pre> | </pre> | ||
Revision as of 10:16, 27 June 2008
Skeleton PERL Scripts
Edit File
#!/usr/bin/env perl
$file = "llheader_jar.log";
open IN, "< $file";
open OUT, "> ntlm.txt";
$typeFlg = -1;
while (<IN>) {
chop();
s/
//;
/^Authorization: / && do {
if ( $typeFlg == 0 ) {
$typeFlg = 1;
s/.*Negotiate *//;
} else {
$typeFlg = 3;
s/.*Negotiate *//;
}
printf OUT "::%d:: %s\n", $typeFlg, $_;
};
/^Parameter \"WWW/ && do {
next if /Negotiate\"/;
/NTLM/ && do {
$typeFlg = 0;
s/"$//;
s/.*"//;
printf OUT "::0:: %s\n", $_;
};
/Parameter \"WWW-Authenticate\" Value \"Negotiate / && do {
$typeFlg = 2;
s/.*Negotiate *//;
s/"$//;
printf OUT "::2:: %s\n", $_;
};
#printf "%s\n", $_;
};
}
close IN;
close OUT;
fix.pl
#!/usr/local/bin/perl
open IN, "< xx.c";
open OUT, "> new.c";
$cnt = 0;
while (<IN>) {
chop();
/\/\/ <[0-9][0-9][0-9][0-9]>/ && do {
s/[0-9][0-9][0-9][0-9]/%04d/;
$l = sprintf $_, $cnt++;
$_ = $l;
printf "%s\n", $_;
};
printf OUT "%s\n", $_;
}
close( OUT );
parser.pl
#!/usr/bin/perl
use IO::Handle;
STDOUT->autoflush(1);
my($total, $current, $icmp);
$current=1;
$icmp=0;
init_parser();
$total=get_info();
foreach $linia (<STDIN>){
printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
printf("Analysing line $current of $total");
$current++;
if($linia=~/^.+\s.+\s>>>>\s.+\s.+\s.+/){
my($proto, $srcip, $nic, $dstip, $date, $time)=split(' ', $linia);
$srcip=~tr/:/./;
$dstip=~tr/:/./;
if($proto eq "ICMP"){$icmp=1;}
if(($proto ne "ICMP") && $icmp==1){print PLIK "$linia";goto blah;}
open(PLIK, ">>./$proto/$srcip-$dstip")|| die "Can`t open file ./$proto/$srcip-$dstip: $!\n";
if(($proto eq "ICMP")){ print PLIK "$linia";}
blah:
}
else{
if($linia=~/--end-of-icmp-packet/){
$icmp=0;
print PLIK "\n";
}
else{
$linia=~s/^\n$//;
print PLIK "$linia";
}
}
}
printf("\n");
sub init_parser{
if(!(-d "./TCP")){
mkdir("./TCP", 0744) || die "Can`t create \"tcp\" directory: $!\n";
}
if(!(-d "./UDP")){
mkdir("./UDP", 0744) || die "Can`t create \"udp\" directory: $!\n";
}
if(!(-d "./ICMP")){
mkdir("./ICMP", 0744) || die "Can`t create \"icmp\" directory: $!\n";
}
}
sub get_info{
my($tem, $counter);
$counter=0;
foreach $tem (<STDIN>){
$counter++;
}
seek(STDIN, 0, SEEK_SET);
return $counter;
}