#-############################################# sub check_bl_data { #-############################################# my $rev_ip = join('.', reverse(split(/\./, $ENV{'REMOTE_ADDR'}))); my ($query, $result, $result_ip); local $_; my @rbls = ( 'blacklist.spambag.org', 'cbl.abuseat.org', 'cbl.anti-spam.org.cn', 'cdl.anti-spam.org.cn', 'dialup.blacklist.jippg.org', 'dnsbl.ahbl.org', 'dnsbl.cyberlogic.net', 'dnsbl.sorbs.net', 'dul.dnsbl.sorbs.net', 'http.dnsbl.sorbs.net', 'ix-dns01.dnsbl.manitu.net', 'ipwhois.rfc-ignorant.org', 'korea.services.net', 'problems.dnsbl.sorbs.net', 'safe.dnsbl.sorbs.net', 'socks.dnsbl.sorbs.net', 'spamips.rbl.shub-inter.net', 'spamtrap.drbl.drand.net', 'web.dnsbl.sorbs.net', 'xbl.spamhouse.org', 'sbl.spamhouse.org', ); foreach (@rbls) { $query = "$rev_ip.$_"; $result = gethostbyname($query) || undef; defined $result && do { ($result_ip) = unpack('C4', $result); $result_ip == 127 && error('bl-listed', $_); }; undef $query; undef $result; } }