WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Linux, UNIX, Open Source

Linux, UNIX, Open Source Rat & Tat bei Problemen und Fragen rund um GNU/Linux, BSD und sonstige UNIXe

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 15.07.2003, 17:11   #1
K@sperl
bitte Mailadresse prüfen!
 
Registriert seit: 03.04.2001
Beiträge: 2.387


Standard perl Problem

Ich hab auf meiner Linux Box Zaval FileSearch installiert, mit diesem Programm kann ich im Netzwerk diverse FTP Server scannen und dann via Web-Interface nach Dateien suchen
http://www.zaval.org/products/file-search/

Nun hab ich dem Entwickler geschrieben, ob es nicht möglich sei, für jeden FTP Server User, Passwort und Port anzugeben, also in der Form ftp://user:pass@host:port

Er hat mir auch zurückgeschrieben welche Änderungen ich in der Datei, die den Hostscan macht, vornehmen soll, leider jedoch ist der Code nicht korrekt und von perl hab ich überhaupt keine Ahnung ...

Hier mal ein Ausschnitt des Quellcodes welchen mir der Entwickler geschickt hat
Code:
        my $port = '21', $login, $pwd;
        if( $host =~ /\@/ ){
            $login = $host;
            if( $host =~ /\@(.)+\:/ ){
                ($host, $port) = split(':', $host);
            }
            $login =~ s/\@(.)+$//;
            ($login,$pwd) = split(':', $login);
            $ftp = Net::FTP->new($host, Port=>$port);
            $ftp->login($login, $pwd) if (defined $ftp);
        }
        else{
            $ftp = Net::FTP->new($host);
            $ftp->login($ENV{"FTP_USER"},$ENV{"FTP_PASSWORD"}) if (defined $ftp);
        }
Es geht hier nun darum, auf den FTP zuzugreifen (mit User und Pass). Eingetragen werden die zu scannenden FTPs in eine Datei. Ich hab nun mal probiert, eine FTP einzutragen (in die Datei), in der Form ftp://IP, also müßte das Programm in den else Zweig springen, das macht es aber anscheinend nicht, da nichts ausgegeben wird (im Normalfall werden alle Dateien und Verzeichnis in ein File geschrieben, welches dann durchsucht werden kann).


Hier der Link zum gesamten File
http://www.geraldholl.cc/scan-host.pl.txt
K@sperl ist offline   Mit Zitat antworten
Alt 15.07.2003, 17:57   #2
FIREwaLKER
Senior Member
 
Registriert seit: 29.12.2001
Beiträge: 134


Standard

Welche Meldung gibt der Interpreter aus wenn du das Programm startest?
____________________________________
http://www.transl.de.vu

Linux isn\'t only an OS, Linux is a System of knowledge, and knowledge is powerful!
FIREwaLKER ist offline   Mit Zitat antworten
Alt 15.07.2003, 18:00   #3
K@sperl
bitte Mailadresse prüfen!
 
Registriert seit: 03.04.2001
Beiträge: 2.387


Standard

Keine, sprich kein Syntax Fehler ...
K@sperl ist offline   Mit Zitat antworten
Alt 15.07.2003, 18:01   #4
_m3
Inventar
 
Registriert seit: 24.09.2001
Beiträge: 7.335


Standard

Hat mich wer gerufen? ;)

Du musst den Code schon in das Script einbauen, sonst klappt es nicht! ;)

Ab Zeile 207 in deinem Code:
Code:
        # The result file has the following structure:
        # {File=>F, Dir=>D}:{date:optional}:size:full path

        $ftp = Net::FTP->new($host);
        if (defined $ftp) {
            $ftp->login($ENV{"FTP_USER"},$ENV{"FTP_PASSWORD"});
ersetzen durch
Code:
        # The result file has the following structure:
        # {File=>F, Dir=>D}:{date:optional}:size:full path

        my $port = '21', $login, $pwd;
        if( $host =~ /\@/ ){
            $login = $host;
            if( $host =~ /\@(.)+\:/ ){
                ($host, $port) = split(':', $host);
            }
            $login =~ s/\@(.)+$//;
            ($login,$pwd) = split(':', $login);
            $ftp = Net::FTP->new($host, Port=>$port);
            $ftp->login($login, $pwd) if (defined $ftp);
        }
        else{
            $ftp = Net::FTP->new($host);
            $ftp->login($ENV{"FTP_USER"},$ENV{"FTP_PASSWORD"}) if (defined $ftp);
        }
Die Umgebungsvariablen FTP_USER und FTP_PASSWORD sind gesetzt?
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org .
_m3 ist offline   Mit Zitat antworten
Alt 15.07.2003, 18:10   #5
_m3
Inventar
 
Registriert seit: 24.09.2001
Beiträge: 7.335


Standard

Ich werde nie wieder gleichzeitig Perl-coden und telefonieren.
Ich werde nie wieder gleichzeitig Perl-coden und telefonieren.
Ich werde nie wieder gleichzeitig Perl-coden und telefonieren.
Ich werde nie wieder gleichzeitig Perl-coden und telefonieren.

Der richtige neue Code lautet:
Code:
	# ORI.m3: $ftp = Net::FTP->new($host);
	# ORI-m3: if (defined $ftp) {
        # ORI.m3:     $ftp->login($ENV{"FTP_USER"},$ENV{"FTP_PASSWORD"});

	my $port = '21', $login, $pwd;
        if( $host =~ /\@/ ){
            $login = $host;
            if( $host =~ /\@(.)+\:/ ){
                ($host, $port) = split(':', $host);
            }
            $login =~ s/\@(.)+$//;
            ($login,$pwd) = split(':', $login);
            $ftp = Net::FTP->new($host, Port=>$port);
            $ftp->login($login, $pwd) if (defined $ftp);
        }
        else{
            $ftp = Net::FTP->new($host);
            $ftp->login($ENV{"FTP_USER"},$ENV{"FTP_PASSWORD"}) if (defined $ftp);
        }
	
	if (defined $ftp) {
	    @list=$ftp->ls("-lR");
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org .
_m3 ist offline   Mit Zitat antworten
Alt 15.07.2003, 18:19   #6
K@sperl
bitte Mailadresse prüfen!
 
Registriert seit: 03.04.2001
Beiträge: 2.387


Standard

@m3
geht leider auch noch nicht ...

Wenn ich in der Datei keinen User und pass angebe, dann verbindet er sich zum FTP, gebe ich jedoch User und pass an, dann verbindet er sich überhaupt nicht zum Server ...
K@sperl ist offline   Mit Zitat antworten
Alt 15.07.2003, 18:38   #7
_m3
Inventar
 
Registriert seit: 24.09.2001
Beiträge: 7.335


Standard

Wie gibst du es denn an?
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org .
_m3 ist offline   Mit Zitat antworten
Alt 15.07.2003, 18:40   #8
K@sperl
bitte Mailadresse prüfen!
 
Registriert seit: 03.04.2001
Beiträge: 2.387


Standard

ftp://user:pass@IP
K@sperl ist offline   Mit Zitat antworten
Alt 15.07.2003, 18:50   #9
K@sperl
bitte Mailadresse prüfen!
 
Registriert seit: 03.04.2001
Beiträge: 2.387


Standard

Ich hab jetzt mal mittels einer print Anweisung $login und $pwd ausgegeben, die sind korrekt, jedoch der Port wird noch falsch erkannt ... Aber warum erfolgt kein Login trotz korrekten Users und Passwortes?

edit: ich hab den Fehler, bei $port steht immer passwort@IP drinnen ... nur was is da falsch?

edit2: Auch die IP passt nicht, in der Var. $host steht immer der username drin
K@sperl ist offline   Mit Zitat antworten
Alt 15.07.2003, 19:22   #10
K@sperl
bitte Mailadresse prüfen!
 
Registriert seit: 03.04.2001
Beiträge: 2.387


Standard

Soda, jetzt hab ich's gelöst:

Code:
        my $port = '21', $login, $pwd;
        if( $host =~ /\@/ ){
            $login = $host;
            if( $host =~ /\@(.)+\:/ ){ 
                ($test, $host) = split('@', $host);
                ($host, $port) = split(':', $host);
            }
            else {
             ($test, $host) = split('@', $host);   
            }
            $login =~ s/\@(.)+$//;
            ($login,$pwd) = split(':', $login);
            $ftp = Net::FTP->new($host, Port=>$port);
            $ftp->login($login, $pwd) if (defined $ftp);
        }
        else{
            $ftp = Net::FTP->new($host);
            $ftp->login($ENV{"FTP_USER"},$ENV{"FTP_PASSWORD"}) if (defined $ftp);
        }
K@sperl ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:15 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag