Nueva version de un cliente FTP que hice en Perl , en esta version se le arreglo varias cosas.
El codigo
#!usr/bin/perl
#FTP Manager 0.2
#Coded By Doddy H
use Net::FTP;
&head;
print "\n\n[FTP Server] : ";
chomp( my $ftp = <stdin> );
print "\n[User] : ";
chomp( my $user = <stdin> );
print "\n[Pass] : ";
chomp( my $pass = <stdin> );
if ( my $socket = Net::FTP->new($ftp) ) {
if ( $socket->login( $user, $pass ) ) {
print "\n\n[+] Enter of the server FTP\n";
menu:
print "\n\n>>";
chomp( my $cmd = <stdin> );
print "\n\n";
if ( $cmd =~ /help/ ) {
print q(
[+] Commands
[++] help : show information
[++] cd : change directory <dir>
[++] dir : list a directory
[++] mkdir : create a directory <dir>
[++] rmdir : delete a directory <dir>
[++] pwd : directory
[++] del : delete a file <file>
[++] rename : change name of the a file <file1> <file2>
[++] size : size of the a file <file>
[++] put : upload a file <file>
[++] get : download a file <file>
[++] cdup : change dir <dir>
);
}
if ( $cmd eq "dir" ) {
if ( my @files = $socket->dir() ) {
my @files_found;
my @dirs_found;
for my $fil (@files) {
my @to = split( " ", $fil );
my ( $dir, $file ) = @to[ 0, 8 ];
if ( $dir =~ /^d/ ) {
push( @dirs_found, $file );
}
else {
push( @files_found, $file );
}
}
print "[++] Directory Found : " . int(@dirs_found) . "\n";
print "\n[+] Files Found : " . int(@files_found) . "\n\n";
for my $dires (@dirs_found) {
print "[++] : $dires\n";
}
for my $filex (@files_found) {
print "[+] : $filex\n";
}
}
else {
print "[-] Error\n\n";
}
}
if ( $cmd =~ /pwd/ig ) {
print "[+] Path : " . $socket->pwd() . "\n";
}
if ( $cmd =~ /cd (.*)/ig ) {
if ( $socket->cwd($1) ) {
print "[+] Directory changed\n";
}
else {
print "[-] Error\n\n";
}
}
if ( $cmd =~ /cdup/ig ) {
if ( my $dir = $socket->cdup() ) {
print "[+] Directory changed\n\n";
}
else {
print "[-] Error\n\n";
}
}
if ( $cmd =~ /del (.*)/ig ) {
if ( $socket->delete($1) ) {
print "[+] File deleted\n";
}
else {
print "[-] Error\n\n";
}
}
if ( $cmd =~ /rename (.*) (.*)/ig ) {
if ( $socket->rename( $1, $2 ) ) {
print "[+] File Updated\n";
}
else {
print "[-] Error\n\n";
}
}
if ( $cmd =~ /mkdir (.*)/ig ) {
if ( $socket->mkdir($1) ) {
print "[+] Directory created\n";
}
else {
print "[-] Error\n\n";
}
}
if ( $cmd =~ /rmdir (.*)/ig ) {
if ( $socket->rmdir($1) ) {
print "[+] Directory deleted\n";
}
else {
print "[-] Error\n\n";
}
}
if ( $cmd =~ /size (.*)/ig ) {
print "[+] Size : " . $socket->size($1) . "\n\n";
}
if ( $cmd =~ /exit/ig ) {
copyright();
exit(1);
}
if ( $cmd =~ /get (.*)/ig ) {
print "[+] Downloading file\n\n";
if ( $socket->get($1) ) {
print "[+] Download completed";
}
else {
print "[-] Error\n\n";
}
}
if ( $cmd =~ /put (.*)/ig ) {
print "[+] Uploading file\n\n";
if ( $socket->put($1) ) {
print "[+] Upload completed";
}
else {
print "[-] Error\n\n";
}
}
goto menu;
}
else {
print "\n\n[-] Failed the login\n\n";
}
}
else {
print "\n\n[-] Error\n\n";
}
sub head {
print "\n\n -- == FTP Manager 0.2 == --\n\n";
}
sub copyright {
print "\n\n(C) Doddy Hackman 2012\n\n";
}
# The End ?