| 12345678910111213141516171819202122232425262728293031323334353637 |
- #!/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);
|