#!/usr/bin/perl
#

# スクリプトの設置パス
$dir = '/usr/local/bin/hack/';
# エラー回数
$limit = 2;
# iptablesのパス
$iptables="/usr/sbin/iptables";

$err = 0;
if ($ARGV[0] eq '') {
   $err = 1;
}else{
   $hack = $ARGV[0];
}

if ($err) {exit $err}

# 特定アドレスは除外
if ($hack eq "127\.0\.0\.1") {exit;}

# 家庭内のアドレスは除外
if ($hack =~ m/^(\d+)\.(\d+)\.(\d+)\.(\d+)/){
#       if ($1 == 10) {exit}                              # クラスA
#       if (($1 == 172) && ($2 > 15) && ($2 < 32)) {exit} # クラスB
       if (($1 == 192) && ($2 == 168)) {exit;}           # クラスC
}

$hack_cnt = $dir . "$hack.cnt";
$cnt = 1;
if(-f "$hack_cnt"){
       open(TIN, "$hack_cnt");
       flock(TIN, 1);
       truncate(TIN, 0);
       while($cc = <TIN>){
               if($cc >= $limit){
                       `$iptables -A HACKER -p tcp --dport 21 -s $hack -j DROP`;
                       exit;
               }
               $cc++;
               $cnt = $cc;
       }
       close(TIN);
}
open(TTCNT, "> $hack_cnt");
print(TTCNT "$cnt\n");
close(TTCNT);
exit;