Código
#!usr/bin/perl #Finder Paths 0.5 Coded By Doddy H use LWP::UserAgent; use HTML::LinkExtor; use Getopt::Long; 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"); GetOptions( "-target=s" => \$target, "-option=s" => \$opcion); head(); unless ($target && $opcion) { sintax(); } else { if ($opcion eq "spider") { escalar($target); } elsif($opcion eq "simple") { simple($target); } else { } } copyright(); sub escalar { my $code = toma( $_[0] ); my @links = get_links($code); if ( $code =~ /Index of (.*)</ig ) { my $dir_found = $1; while ( $code =~ /<a href=\"(.*)\">(.*)<\/a>/ig ) { my $ruta = $1; my $nombre = $2; unless ( $nombre =~ /Parent Directory/ig or $nombre =~ /Description/ig ) { unless ($nombre=~/\/$/) { } } } } #get more for my $com (@links) { my ( $scheme, $auth, $path, $query, $frag ) = uri_split( $_[0] ); if ( $path =~ /\/(.*)$/ ) { my $path1 = $1; $_[0] =~ s/$path1//ig; my ( $scheme, $auth, $path, $query, $frag ) = uri_split($com); if ( $path =~ /(.*)\// ) { my $parche = $1; unless($repetidos=~/$parche/){ $repetidos.=" ".$parche; escalar("http://".$auth.$parche ); } } for(@encontrados) { escalar($_); }}}} sub simple { my $code = toma($_[0]); my @links = get_links($code); for my $com (@links) { my ( $scheme, $auth, $path, $query, $frag ) = uri_split( $_[0] ); if ( $path =~ /\/(.*)$/ ) { my $path1 = $1; $_[0] =~ s/$path1//ig; my ( $scheme, $auth, $path, $query, $frag ) = uri_split($com); if ( $path =~ /(.*)\// ) { my $parche = $1; unless($repetidos=~/$parche/){ $repetidos.=" ".$parche; my $code=toma("http://".$auth.$parche); if ( $code =~ /Index of (.*)</ig ) { my $dir_found = $1; }}}}}} sub toma { } sub get_links { $test = HTML::LinkExtor->new( \&agarrar )->parse( $_[0] ); sub agarrar { my ( $a, %b ) = @_; } } sub head { } sub sintax { } sub copyright { } # The End ?