http://qs1969.pair.com?node_id=181485


in reply to Net::FTP via CGI mystery

Molto thanks to tjh in the CB for the solution to this problem (and shame on me for not reading the manual finely enough) - the answer is to create the new ftp object with Passive mode turned on,
my $ftp = Net::FTP->new("ftp.xxxxxxxxxx.xxx", Passive => 1, Debug => 1 +);
So that's fixed. Although I'm still puzzled why one needs to do something different in order to call the script in a different way...

§ George Sherston

Replies are listed 'Best First'.
Re: SOULUTION: Net::FTP via CGI mystery
by tjh (Curate) on Jul 13, 2002 at 14:55 UTC
    No prob. I believe FTP clients open 2 ports, 1 out and 1 in (control and data, IIRC).

    Your shell login is likely running on a box that will allow the return port to be opened. The web server box (the one running your script), is likely behind a firewall that won't allow the return (data) port to open. You however are succeeding in logging in via the already open control port.

    If I missed badly others should correct me :), but it sounds good eh?

    Update: Beatnik followed up by pointing out to me more specifically that port (20), the traditional active FTP data port on the ftp server, may be blocked, while port (21), the traditional ftp control channel, may not be.