37 lines
		
	
	
	
		
			964 B
		
	
	
	
		
			Perl
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			37 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);
 |