MOON
Server: Apache/2.2.31 (Unix) mod_ssl/2.2.31 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4
System: Linux csr818.wilogic.com 2.6.18-419.el5xen #1 SMP Fri Feb 24 22:50:37 UTC 2017 x86_64
User: digitals (531)
PHP: 5.4.45
Disabled: NONE
Upload Files
File: //proc/self/root/scripts.20110531.215904.25158/ftpfetch
#!/usr/bin/perl

use Net::FTP;

my(%ARGS) = parseargv();

if ($ARGS{user} eq "") {
   die "Sorry, you must specify a user to login to the remote server as.";
}
if ($ARGS{host} eq "") {
   die "Sorry, you must specify a remote server.";
}
if ($ARGS{srcfile} eq "") {
   die "Sorry you must specify a source file.\n";
}
if ($ARGS{destfile} eq "") {
   die "Sorry you must specify a destfile file.\n";
}
if ($ARGS{port} eq "22") {
	print "Assuming port 21 since 22 was specified!\n";
	$ARGS{port} = 21;
}

my $pass = <STDIN>;
chomp($pass);

if ($pid = fork()) {
   while(waitpid($pid,1) != -1) {
      print ".\n";
      sleep(1);
   }
} else {
   my $ftp;
   if ($ARGS{'port'} ne "") {
	   $ftp = Net::FTP->new($ARGS{host},Debug => 1,Passive => 1, Port=>$ARGS{'port'}) ||
	   die "Cannot connect to $ARGS{host}:$ARGS{port} $@";
   } else {
	   $ftp = Net::FTP->new($ARGS{host},Debug => 1,Passive => 1) ||
	   die "Cannot connect to $ARGS{host}:21:  $@";
   }
   $ftp->login($ARGS{user},$pass) || die "Cannot login ", $ftp->message;
   my(@FINFO) = split(/\//, $ARGS{srcfile});
   my $file;
   my $dir;
   if ($ARGS{srcfile} =~ /^\//) {
      shift(@FINFO); #/
      shift(@FINFO); #home
      shift(@FINFO); #user
   }
   $file = pop(@FINFO);
   $dir = join("/",@FINFO);
   $ftp->cwd($dir) || die "Cannot change working directory ", $ftp->message;


   my(@DEST) = split(/\//, $ARGS{destfile});
   my $destfile = pop(@DEST);
   my $destdir = join("/", @DEST);
   if ($destdir ne "") {
	   chdir($destdir);
   }
   if ($destfile ne '.') {
	   $ftp->get($file,$destfile) || die "get failed ", $ftp->message;
   } else {
	   $ftp->get($file) || die "get failed ", $ftp->message;
   }
   $ftp->quit();
   exit(); 
}

sub parseargv {
   my(%ARGS);
   while($#ARGV != -1) {
      $_ = $ARGV[0];
      if (/^\-\-/) {
         my $arg = shift(@ARGV);
         $arg =~ s/^\-\-//g;
         $arg =~ tr/[A-Z]/[a-z]/;
         my $value = shift(@ARGV);
         $ARGS{$arg} = $value;
      } else {
         last;
      }
   }
   return(%ARGS);
}