pkg-monitoring-plugins/contrib/rblcheck-web

38 lines
964 B
Perl
Executable file

#!/usr/bin/perl
# Multi-RBL Query tool, developer Vikram <vr@udel.edu>
use IO::Socket::INET;
die "Syntax: $0 -H <ip address>\n" unless $ARGV[1];
$soc = new IO::Socket::INET->new(PeerPort=>80,
Proto=>'tcp',
PeerAddr=>"rbls.org") or die("Cannot connect to CERT");
$ip = $ARGV[1];
$uri = '/?q='.$ip;
$soc->send("GET $uri HTTP/1.1\nHost: rbls.org\n\n");
@buff = <$soc>;
delete @buff[0..7];
$len = @buff;
$alert = 0;
for( $i=0;$i<$len;$i++ ) {
next unless( defined $buff[$i] );
chomp($buff[$i]);
#print "$buff[$i]\n";
if ( $buff[$i] eq "<tr bgcolor=#ffc0c0>" ) {
$rbl = substr($buff[$i+1], 5, index($buff[$i], "</tr>") - 5);
next if ( index($rbl, '.') == -1 );
print "$ip is listed in the following RBLS: " if ( $alert == 0 );
print "$rbl ";
$alert = 1;
}
}
print "$ip is not listed in any RBLS" if ( $alert == 0 );
print "\n";
exit($alert);