Perl script para conseguir proxies en la terminal?

Iniciado por idst, 5 Diciembre 2012, 16:34 PM

0 Miembros y 1 Visitante están viendo este tema.

idst

Estaba buscando un sitio con proxies para unas pruebas con Proxychains y los únicos que encontré que funcionan son de htt://www. hidemyass.com/proxy-list/. El problema es que las IP parecen estar ofuscadas con CSS, así que lo resolví con regex pero no estoy seguro que sea la mejor forma.

De uqe otra forma se puede hacer o alguien sabe de otro sitio? Gracias.

Código (perl) [Seleccionar]

use strict;
use LWP::UserAgent;

my $source = 'http://www.hidemyass.com/proxy-list/';
my $agent = 'Mozilla/5.0 (X11; Linux i686) Firefox/16.0';

my $browser = LWP::UserAgent->new( agent => $agent );
my $response = $browser->get($source);
die "Can't get $source\n" unless $response->is_success;
my $content = $response->content;

print 'UPDATE |    IP ADDRESS:PORT    |   TYPE   | COUNTRY | SPEED',
" | CTIME | ANON LVL\n", '~' x 78, "\n";

while ( $content =~ m/(<tr class=".*?<\/tr>)/gs ) {
   my $tr = $1;
   my %data;
   while ( $tr =~ m/(<td[^>]*>.*?<\/td>)/gs ) {
       my $td = $1;
       if ( $td =~ m/updatets\s*">\s*(\d+ (:?secs|minutes?))</ ) {
           $data{'update'} = $1;
       }
       elsif ( $td =~ m/<style>/ ) {
           $data{'ip'} = de_css($td);
       }
       elsif ( $td =~ m/<td>\s*(\d+)\s*<\/td>/ ) {
           $data{'port'} = $1;
       }
       elsif ( $td =~ m/class="country".*?>\s*([^<]+)<\s/s ) {
           $data{'country'} = $1;
       }
       elsif ( $td =~ m/response_time.*?"width:(\d+%)"/s ) {
           $data{'rtime'} = $1;
       }
       elsif ( $td =~ m/connection_time.*?"width:(\d+%)"/s ) {
           $data{'ctime'} = $1;
       }
       elsif ( $td =~ m/<td>(https?|socks4\/5)<\/td>/i ) {
           $data{'type'} = $1;
       }
       elsif ( $td =~ m/rightborder">([^<]+)<\/td>/ ) {
           $data{'anon'} = $1;
       }
   }

   printf "%6s | %-21s | %-8s | %-7s | %-5s | %-5s | %-8s\n",
     substr( $data{'update'}, 0, 6 ), "$data{'ip'}:$data{'port'}",
     $data{'type'},
     substr( $data{'country'}, 0, 7 ), $data{'rtime'}, $data{'ctime'},
     $data{'anon'};
}

sub de_css {
   my $ip = shift;
   $ip =~ s/<(:?div|span) style="display:none">[^<]*<\/[^>]+>//g;
   $ip =~ s/\.[\w\-_]+\{display:inline\}//g;

   while ( $ip =~ m/\.([\w\-_]+)\{display:none\}/g ) {
       my $class = $1;
       $ip =~ s/\.$class\{display:none\}//;
       $ip =~ s/<span class="$class">[^<]*<\/span>//g;
   }

   $ip =~ s/\s*//gs;

   return join '', $ip =~ m/>([^<]+)</gs;
}

__END__


Eleкtro

Me gusta el script, buen proxy-leecher

Aquí tienes otros sitios para añadir:
http://www.ip-adress.com/proxy_list/
http://spys.ru/en/

PD: Google + proxy list

saludos