간단한 perl 예제 정리

간단한 문자열 처리를 위해 사용할 때, 매번 펄 문법을 다시 뒤적이지 않기 위한 메모

[참고 소스 #1]
- Trace route 결과 처리를 위해 작성했던 펄 스크립트
#!/usr/bin/perl

use IO::Socket;

for ($i=1; $i<=10; $i++) {
    $filename = "test$i.txt";
    open (TEST, "$filename");
    @allLines = <TEST>;
    for ($j=1; $j<=$#allLines; $j++) {
        if ($allLines[$j] =~ /113.217/) {
            print "$filename is out!!!!\n";
        }
    }
    close (TEST);
}


[참고 소스 #2]
- 간단한 tcp port 스캐닝 프로그램 (할랭이님 원본 소스에서 수정 : http://swbae.egloos.com/1701032)
#!/usr/bin/perl

use IO::Socket;

@port = (21,22,23,80,1433,1521);
$output ="./result_1.txt";

if ($ARGV[0] eq "") {
    print "Usage : sscan.pl <A.B.C.> <D start> <D end> # Dot is important!!\n";
    die " ex) perl sscan.pl 123.1.1. 1 10 will scan 123.1.1.1 ~ 123.1.1.10\n";
}

open (RESULT,">>$output");

$ip_ac = $ARGV[0];
$d_start = $ARGV[1];
$d_end = $ARGV[2];

for ($ip_d=$d_start; $ip_d<=$d_end; $ip_d++) {
    for ($i=0; $i<=$#port ; $i++) {
        $ip = $ip_ac . $ip_d;
        $sock = new IO::Socket::INET (PeerAddr => $ip, PeerPort => $port[$i], Proto => 'tcp');
        if ($sock) {
            print "$ip:$port[$i] -open\n";
            print RESULT "$ip:$port[$i] -open\n";
            close $sock;
        } else {
            print "$ip:$port[$i] -closed\n";
        }
    }
    print "\n";
    print RESULT "\n";
}
close(RESULT);

print "Result file is \"$output\"\n";




덧글

댓글 입력 영역