#!/usr/bin/perl -w

#use Strict;
use DBI;

$iptab_comm="/sbin/iptables -t mangle -xvn -L -Z";
@iptab_tab=qw(COUNT_IN COUNT_OUT);
$db_host="host";
$db_name="dbname";
$db_user="user";
$db_pass="passwod";
$debug=0;
$ver="0.1b";

###########--------- sub rutines ----------#####################
sub fetch_c{
 my(@row,$tab,%data);
 foreach $tab (@iptab_tab){
   open(IPT,"$iptab_comm $tab|") || die "canont read iptables counter\t$!\n";
     while(<IPT>){
       if(/([\d]+)\s+([\d]+)[\s\w\*\-]+\s(\d+\.\d+\.\d+.\d+)[\/\d]*\s+(\d+\.\d+\.\d+.\d+)[\/\d]*/){
    	 print "PHARSE: $1 $2 $3 $4 \n" if($debug);
	 if($3 eq "0.0.0.0"){
	   $data{$4}[0]=$1;
	   $data{$4}[1]=$2;
	 }else{
	   $data{$3}[2]=$1;
	   $data{$3}[3]=$2;
	 }
       }
     }
   close IPT;
 }
return(\%data);
}

sub init_db{
  $db=DBI->connect("DBI:mysql:$db_name:$db_host","$db_user","$db_pass") || die "Connection to DB faild\t $!\n";
}

sub insert{
 my($ip,$pi,$bi,$po,$bo)=@_;
 my(@time)=localtime(time);
 my ($date)=($time[5]+1900)."-".($time[4]+1)."-".$time[3];
 my ($time)="$time[2]:$time[1]:$time[0]";
 print $time."\n" if($debug);
 $db->do("INSERT into trafic (ip,date,time,pi,bi,po,bo) VALUES (\'$ip\',\'$date\',\'$time\',\'$pi\',\'$bi\',\'$po\',\'$bo\')") || print "$!\n";
}

sub prepare{
 my ($d)=@_;
 foreach $ip (keys %$d){
   if($debug){print "PREPARE: $ip $d->{$ip}->[0]  $d->{$ip}[1]  $d->{$ip}[2]  $d->{$ip}[3] \n";}
   
   &insert($ip,$d->{$ip}->[0],$d->{$ip}->[1],$d->{$ip}->[2],$d->{$ip}->[3]); 
 }


}
##############----- main loop ------###############

$data = &fetch_c;
&init_db;
&prepare($data);


# foreach $k (keys %data){
#    print $k." IN-p".$data{$k}[0]." b-".$data{$k}[1]."   OUT-p".$data{$k}[2]." b-".$data{$k}[3]."\n";
# }


1;


