PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : net::ftp perl script kann nicht verbinden



Fir3fly
07-05-2003, 20:14
Hi,

ich versuche mich an einem kleinen script, zum einfachen holen der dateiliste:



#!/usr/bin/perl
use Net::FTP; # Einbinden des FTP-Moduls
$server="xxxxxx.mine.nu"; # Hier wird die Adresse des FTP-Servers
# festgelegt (Hostname oder IP-Adresse)
$port="21";
$username="login"; # Benutzername auf dem FTP-Server
$password="passwort" # Passwort für den Benutzer

my $ftp = Net::FTP->new($server,
Timeout => 360,
Port => $port,
Debug => 1,
Hash => 0,
) || die "Keine Verbindung mit $server.\n";

$ftp->login($username, $password) || die "Fehler beim einloggen.\n";

$ftp->type(I);
$ftp->pwd();
$ftp->pasv();
@files = $ftp->dir();

leider bekomme ich keine datenverbindung zum empfangen der list:

bash-2.05b$ leechtxt.pl

Net::FTP: Net::FTP(2.65)
Net::FTP: Exporter(5.566)
Net::FTP: Net::Cmd(2.21)
Net::FTP: IO::Socket::INET(1.26)
Net::FTP: IO::Socket(1.27)
Net::FTP: IO::Handle(1.21)

Net::FTP=GLOB(0x81434ac)<<< 220 BulletProof FTP Server ready ...
Net::FTP=GLOB(0x81434ac)>>> user ftp
Net::FTP=GLOB(0x81434ac)<<< 331 Password required for login.
Net::FTP=GLOB(0x81434ac)>>> PASS ....
Net::FTP=GLOB(0x81434ac)<<< 230 User ftp logged in.
Net::FTP=GLOB(0x81434ac)>>> TYPE I
Net::FTP=GLOB(0x81434ac)<<< 200 Type set to I.
Net::FTP=GLOB(0x81434ac)>>> PWD
Net::FTP=GLOB(0x81434ac)<<< 257 "/" is current directory.
Net::FTP=GLOB(0x81434ac)>>> PASV
Net::FTP=GLOB(0x81434ac)<<< 227 Entering Passive Mode (213,209,78,209,111,68).
Net::FTP=GLOB(0x81434ac)>>> PORT 192,168,100,1,139,14
Net::FTP=GLOB(0x81434ac)<<< 200 Port command successful.
Net::FTP=GLOB(0x81434ac)>>> LIST
Net::FTP=GLOB(0x81434ac)<<< 150 Opening data connection for directory list.

und da muß ich dann das script abbrechen, weil er immer wieder nach dem timeout aufs neue versucht die verbindung herzustellen. Immer ohne Erfolg. Das selbe prozedere mit gftp gibt diesen log (mit gftp funktionierts nämlich einwandfrei):


220 BulletProof FTP Server ready ...
USER ftp
331 Password required for login.
PASS xxxx
230 User ftp logged in.
TYPE I
200 Type set to I.
PWD
257 "/" is current directory.
PASV
227 Entering Passive Mode (213,209,78,209,173,65).
LIST -L
150 Data connection accepted from 80.129.127.43:64966; transfer starting.
226 Transfer ok


Der einzige unterschied im log ist das hier:



Net::FTP=GLOB(0x81434ac)>>> PORT 192,168,100,1,139,14
Net::FTP=GLOB(0x81434ac)<<< 200 Port command successful

aber ich habe keine Ahnung, wie ich das abschalten soll.. gehört wohl zu dem list Befehl. Vieleicht kann mir jemand einen tipp geben, scheinbar bin ich der einzige im großen weiten Internet, mit diesem Problem. By the way: ich sitze hier an einem Rechner, der über NAT ins Netz geht durch eine Firewall. Auf dem Router ausgeführt bringt das script jedoch auch kein besseres Resultat.

Danke (das Ihr überhaupt bis hier runter gelesen habt)

Fir3fly