#!usr/bin/perl#Proxy Tester 0.5#Version Tk#Coded By Doddy Huse Cwd;use Tk;use Tk::FileSelect;use Tk::Dialog;use LWP::UserAgent;my $nave = LWP::UserAgent->new();$nave->timeout(5);$nave->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12");#if ($^O eq 'MSWin32') {#use Win32::Console;#Win32::Console::Free();#}my $color_texto = "green";my $color_fondo = "black";my $newd = MainWindow->new( -background => $color_fondo, -foreground => $color_texto );$newd->title("Proxy Tester 0.5");$newd->geometry("370x250+50+50");$newd->resizable( 0, 0 );$menula = $newd->Frame( -relief => "sunken", -bd => 1, -background => $color_fondo, -foreground => $color_texto);my $menulnowax = $menula->Menubutton( -text => "Options", -underline => 1, -background => $color_fondo, -foreground => $color_texto, -activebackground => $color_texto)->pack( -side => "left" );my $aboutnowax = $menula->Menubutton( -text => "About", -underline => 1, -background => $color_fondo, -foreground => $color_texto, -activebackground => $color_texto)->pack( -side => "left" );my $exitnowax = $menula->Menubutton( -text => "Exit", -underline => 1, -background => $color_fondo, -foreground => $color_texto, -activebackground => $color_texto)->pack( -side => "left" );$menula->pack( -side => "top", -fill => "x" );$menulnowax->command( -label => "Load Wordlist", -background => $color_fondo, -foreground => $color_texto, -command => \&loadword);$menulnowax->command( -label => "Check Online", -background => $color_fondo, -foreground => $color_texto, -command => \&scan);$menulnowax->command( -label => "Open Logs", -background => $color_fondo, -foreground => $color_texto, -command => \&openlogs);$aboutnowax->command( -label => "About", -background => $color_fondo, -foreground => $color_texto, -command => \&aboutxa);$exitnowax->command( -label => "Exit", -background => $color_fondo, -foreground => $color_texto, -command => \&exitnow);$newd->Label( -text => "Proxy OK", -font => "Impact", -background => $color_fondo, -foreground => $color_texto)->place( -y => 40, -x => 75 );my $proxy_buenos = $newd->Listbox( -background => $color_fondo, -foreground => $color_texto ) ->place( -y => "80", -x => "40" );$newd->Label( -text => "Proxy Failed", -font => "Impact", -background => $color_fondo, -foreground => $color_texto)->place( -y => 40, -x => 220 );my $proxy_malos = $newd->Listbox( -background => $color_fondo, -foreground => $color_texto ) ->place( -y => "80", -x => "200" );MainLoop;sub openlogs { my $f = "proxy-founds.txt"; if ( -f $f ) { system($f); } else { $newd->Dialog( -title => "Error", -buttons => ["OK"], -text => "File Not Found", -background => $color_fondo, -foreground => $color_texto, -activebackground => $color_texto )->Show(); }}sub loadword { my $newdax = MainWindow->new( -background => $color_fondo, -foreground => $color_texto ); $newdax->title("Load Wordlist"); $newdax->geometry("460x50+50+50"); $newdax->resizable( 0, 0 ); $newdax->Label( -text => "File : ", -font => "Impact1", -background => $color_fondo, -foreground => $color_texto )->place( -y => 10, -x => 10 ); my $filex = $newdax->Entry( -width => 40, -background => $color_fondo, -foreground => $color_texto )->place( -y => 13, -x => 50 ); $newdax->Button( -text => "Browse", -width => 10, -command => \&bro, -background => $color_fondo, -foreground => $color_texto, -activebackground => $color_texto )->place( -y => 13, -x => 300 ); $newdax->Button( -text => "Load", -width => 10, -command => \&pasouno, -background => $color_fondo, -foreground => $color_texto, -activebackground => $color_texto )->place( -y => 13, -x => 375 ); sub bro { $newd->update; $browse = $newd->FileSelect( -directory => getcwd() ); my $file = $browse->Show; $filex->configure( -text => $file ); } sub pasouno { my $file = $filex->get; $newdax->destroy(); if ( -f $file ) { open( FILE, $file ); my @words = <FILE>; close FILE; chomp @words; my @proxies = repes(@words); $proxy_buenos->delete( 0.0, "end" ); $proxy_malos->delete( 0.0, "end" ); $newd->title("Proxy Tester 0.5 [+] Status : Testing ..."); for my $pro (@proxies) { chomp $pro; $newd->update; if ( testnow($pro) ) { $proxy_buenos->insert( "end", $pro ); } else { $proxy_malos->insert( "end", $pro ); } } } else { $newd->Dialog( -title => "Error", -buttons => ["OK"], -text => "File Not Found", -background => $color_fondo, -foreground => $color_texto, -activebackground => $color_texto )->Show(); } } $newd->title("Proxy Tester 0.5");}sub scan { $proxy_buenos->delete( 0.0, "end" ); $proxy_malos->delete( 0.0, "end" ); $newd->title("Proxy Tester 0.5 [+] Status : Searching ..."); my @uno = getproxys(); my @dos = getxroxy(); #my @tres = proxyip(); #my @cuatro = proxylist(); #my @cinco = proxies(); #big list my @total = ( @uno, @dos, @tres, @cuatro, @cinco ); $newd->update; $newd->title("Proxy Tester 0.5 [+] Status : Testing ..."); my $cont = "0"; for (@total) { $newd->update; if ( testnow($_) ) { $cont++; print "\a"; #BEEP } } $newd->title("Proxy Tester 0.5");}sub testnow { my $ver = shift; my $pro; my $host; my $port; my $country; my $save; my $test_proxy = LWP::UserAgent->new(); $test_proxy->timeout(5); $test_proxy->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12" ); if ( $ver =~ /(.*):(.*)/ ) { ( $host, $port, $country ) = ( $1, $2, "Unknown" ); $save = $host . ":" . $port; } if ( $ver =~ /(.*):(.*):(.*)/ ) { ( $host, $port, $country ) = ( $1, $2, $3 ); $save = $host . ":" . $port . ":" . $country; } my $pro = $host . ":" . $port; $test_proxy->proxy( "http", "http://" . $pro ); my $code = $test_proxy->get("http://www.whatismyip.com/")->content; if ( $code =~ /Your IP Address Is/ ) { savefile( "proxy-founds.txt", $save ); return true; }}sub getproxys { my @founds; my @volver; for my $num ( 1 .. 5 ) { $newd->update; my $code = toma("http://www.proxys.com.ar/index.php?act=list&port=&type=&country=&page=$num" ); while ( $code =~/<tr class="cells" onmouseover="this.className='cells2'" onmouseout="this.className='cells'">(.*?)<\/tr>/sig ) { my $porcion = $1; chomp $porcion; if ( my @total = $porcion =~ m{<\s*td\s*>\s*(.*?)\s*</\s*td}mig ) { push( @founds, $total[1] . ":" . $total[2] . ":" . $total[4] ); } } } my @volver = repes(@founds); return @volver;}sub getxroxy { my @founds_final; my @founds; for my $num ( 0 .. 26 ) { $newd->update; open( FILE, ">>proxy.txt" ); my $code = toma("http://www.xroxy.com/proxylist.php?port=&type=&ssl=&country=&latency=1000&reliability=&sort=reliability&desc=true&pnum=$num" ); while ( $code =~ /proxy:name=XROXY proxy&host=(.*?)&port=(.*?)¬es=(.*?)&/sig ) { my ( $ip, $port, $pais ) = ( $1, $2, $3 ); $port =~ s/&isSocks=true//sig; $port =~ s/&socksversion=4a//sig; push( @founds, "$ip:$port:$pais" ); print FILE "$ip:$port\n"; } } my @founds_final = repes(@founds); return @founds_final;}sub proxies { my @founds_final; my @founds; for my $i ( 1 .. 10 ) { $newd->update; my $code = toma( "http://proxies.my-proxy.com/proxy-list-" . $i . ".html" ); my @found = $code =~ m/(\d{1,3}[.]\d{1,3}[.]\d{1,3}[.]\d{1,3}:\d+)/g; for (@found) { push( @founds, "$_:Unknown" ); } } my @founds_final = repes(@founds); return @founds_final;}sub proxyip { my @founds_final; my @founds; my $code = toma("http://proxy-ip-list.com/free-usa-proxy-ip.html"); if ( $code =~ /<tbody class="table_body">(.*?)<\/table>/sig ) { my $codedos = $1; while ( $codedos =~/<tr><td>(.*?)<\/td><td>(.*?)<\/td><td>(.*?)<\/td><td>(.*?)<\/td><td>(.*?)<\/td><\/tr>/mig ) { my ( $ip, $pais ) = ( $1, $5 ); push( @founds, "$ip:$pais" ); } } my @founds_final = repes(@founds); return @founds_final;}sub proxylist { my @founds_final; my @founds; my $code = toma("http://www.proxylist.net/"); while ( $code =~/<tr><td><a href="(.*?)">(.*?)<\/a><\/td><td><a href="(.*?)">(.*?)<\/a><\/td>/mig ) { my ( $ip, $pais ) = ( $2, $4 ); push( @founds, "$ip:$pais" ); } my @founds_final = repes(@founds); return @founds_final;}sub aboutxa { $newd->Dialog( -title => "About", -buttons => ["OK"], -text => "Coded By Doddy H", -background => $color_fondo, -foreground => $color_texto, -activebackground => $color_texto )->Show();}sub exitnow { exit 1; }sub savefile { open( SAVE, ">>" . $_[0] ); print SAVE $_[1] . "\n"; close SAVE;}sub toma { return $nave->get( $_[0] )->content;}sub repes { my @limpio; foreach $test (@_) { push @limpio, $test unless $repe{$test}++; } return @limpio;}#The End ?