#!/usr/bin/perl
my
$start_init
= Benchmark->new();
my
$obj
= NET::IPFilter->new(
ipfilter
=>
'/home/thecerial/firewall/ipfilter.dat'
,
tmpdir
=>
'/var/tmp'
,
force_init
=>
'0'
);
my
$end_init
= Benchmark->new();
my
$diff_init
= timediff(
$end_init
,
$start_init
);
print
"_init():: Time taken was "
, timestr(
$diff_init
,
'all'
),
" seconds\n"
;
my
$IP
=
"199.196.016.200"
;
my
$start_chk
= Benchmark->new();
my
$isValid
=
$obj
->isValid(
$IP
);
my
$end_chk
= Benchmark->new();
my
$diff_chk
= timediff(
$end_chk
,
$start_chk
);
print
"_check():: Time taken was "
, timestr(
$diff_chk
,
'all'
),
" seconds\n"
;
if
(
$isValid
== 1 ) {
print
"$IP dont need to be blocked because it is not in ipfilter.dat\n"
;
}
elsif
(
$isValid
== 0 ) {
print
"$IP MUST be blocked because it is in ipfilter.dat\n"
;
};
exit
;
my
$s
=
$obj
->_ip2long(
"222.228.226.192"
);
my
$e
=
$obj
->_ip2long(
"222.228.226.255"
);
my
$IPtoCheck
=
$obj
->_ip2long(
"222.228.226.210"
);
print
"FROM: $s \n"
;
print
"TO : $e \n"
;
print
"CHK : $IPtoCheck\n"
;
print
"FLG : "
. check().
" \n"
;
my
$RangesArrayRef
=
$obj
->{
'_IPRANGES_ARRAY_REF'
};
sub
check(){
for
(
my
$count
=0;
$count
<=
$howmany
;
$count
++) {
my
(
$RangFrom
,
$RangTo
) =
split
(
"-"
,
$RangesArrayRef
->[
$count
]);
if
(
$IPtoCheck
>
$RangFrom
&&
$IPtoCheck
<
$RangTo
) {
return
0;
}
elsif
(
$IPtoCheck
<=>
$RangFrom
||
$IPtoCheck
<=>
$RangTo
) {
return
0;
};
$count
++;
};
};