pkg-monitoring-plugins/contrib/rblcheck-dns

70 lines
1.4 KiB
Perl
Executable file

#!/usr/bin/perl
# Multi-RBL Query tool, developer Vikram <vr@udel.edu>
use strict;
use Socket;
my $suspect = $ARGV[1];
die "Syntax: $0 -H <ip address>\n" unless $suspect;
my @rblservers=qw[
3y.spam.mrs.kithrup.com
block.blars.org
bl.redhatgate.com
blackholes.five-ten-sg.com
blackholes.intersil.net
blackholes.mail-abuse.org
blackholes.wirehub.net
blacklist.spambag.org
dev.null.dk
dews.qmail.org
dialup.blacklist.jippg.org
dialups.mail-abuse.org
dnsbl.njabl.org
dul.maps.vix.com
dul.orca.bc.ca
dynablock.wirehub.net
formmail.relays.monkeys.com
ipwhois.rfc-ignorant.org
list.dsbl.org
multihop.dsbl.org
okrelays.nthelp.com
pm0-no-more.compu.net
proxies.relays.monkeys.com
rbl-plus.mail-abuse.org
rbl.maps.vix.com
rbl.spam.org.tr
relays.mail-abuse.org
relays.nthelp.com
relays.ordb.org
relays.radparker.com
relays.visi.com
sbl.spamhaus.org
spamguard.leadmon.net
spammers.v6net.org
spamsources.fabel.dk
spews.org
unconfirmed.dsbl.org
xbl.selwerd.cx
];
my $spam = 0;
foreach ( @rblservers ) {
my @s = split('\.',$suspect);
my $req = "$s[3].$s[2].$s[1].$s[0].".$_;
my ($name,$aliases,$addrtype,$length,@addrs) = gethostbyname($req);
next unless (@addrs);
my $result = inet_ntoa($addrs[0]);
#next unless (substr($result, 7) eq '127.0.0');
print "$suspect is listed in the following RBLS: " if ( $spam == 0 );
print $_, " ";
$spam = 1;
}
print "$suspect is not listed in any RBLS" if ( $spam == 0 );
print "\n";
exit( $spam );