Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]12953[/thread]

Lesen Directory-Einträge

Leser: 2


<< |< 1 2 3 4 ... 6 >| >> 53 Einträge, 6 Seiten
wastl
 2009-01-05 13:02
#117565 #117565
User since
2005-02-13
40 Artikel
BenutzerIn
[default_avatar]
Hallo,
ich habe mehrere Domains. Auf einer davon kann ich CGI-Programme erstellen.
Mit einem solchen Perl-Programm möchte ich alle Namen (nicht den Dateiinhalt) lesen von den Dateien, die in einem bestimmten Verzeichnis in dieser Domain aber auch auf einer anderen Domain liegen. Da die Domains mir gehören, ist dies was Berechtigungen angeht kein Problem.
Wie mache ich das am besten?
Ist eine Passwortabsicherung sinnvoll?
Struppi
 2009-01-05 13:09
#117566 #117566
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Ob Domain oder nicht, spielt erstmal keine Rolle. Mit http kannst du keine Verzeichnisse auslesen, das geht nur, wenn diese auf dem selben Server liegen oder du Zugriff über FTP hast (oder andere Protokolle mit denen du Zugriff auf die Serverinfrastruktur wie z.b. ssh oder über telnet).

Es wäre also zuerst zu klären, von wo du welche Verzeichnisse einlesen willst.
GwenDragon
 2009-01-05 13:19
#117567 #117567
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Das geht nur, wenn du als Nutzer vollen Zugriff auf alle Verzeichnisse aller Domains auf dem Server hast - je nachdem, wie dein Provider den Server betreibt.
Es kann aber auch sein, dass du von einer Domain nur auf Verzeichnisse dieser Domain zugreifen darfst.

Ansonsten ging das so:

Gib mit CPAN:CGI einen HTTP-Header aus.

Mit CPAN:File-Find kannst du alle Dateinamen eines Verzeichnisses und dessen Unterverzeichnisse auslesen und in der Funktion wanted die Dateinamen meinetwegen in ein Array speichern.

Andere Methode im Wiki Wiki:EinUndAusgabeDateinamenImVerzeichnisAuslesen

Dann kannst du mit CGI deine HTML-Seite erstellen und z. B. das Array als sortierte Liste ausgeben.

Eine Passwortabsicherung ist sinnvoll, da sonst jeder sehen kann, welche Dateien du auf deiner Domain hast!
Du kanns sowas mit .htaccess machen oder in dein CGI ein Passwortlogin einbauen.



Wenn du allerdings nicht per CGI auf alle Verzeichnisse aller Domains zugreifen darfst, könnte es vielleicht mit SSH oder telnet gehen.

Ist das ein eigener VServer? Oder nur ein normaler Webspaceprovider?
wastl
 2009-01-05 15:10
#117580 #117580
User since
2005-02-13
40 Artikel
BenutzerIn
[default_avatar]
Ich habe vollen Zugriff auf die Verzeichnisse.

>> Gib mit CGI einen HTTP-Header aus.
Das verstehe ich leider nicht.

>> Mit File-Find kannst du alle Dateinamen eines Verzeichnisses und dessen Unterverzeichnisse auslesen
Wen ich die CPAN-Doku recht verstehe, geht dies nur für Verzeichnisse innerhalb der akt. Domain

>>Andere Methode im Wiki Wissensbasis/EinUndAusgabeDateinamenImVerzeichnisAuslesen
Auch das geht, wie ich vermute nur auf dem akt. Server
wastl
 2009-01-05 15:11
#117581 #117581
User since
2005-02-13
40 Artikel
BenutzerIn
[default_avatar]
Ich habe vollen Zugriff auf die Verzeichnisse.

>> Gib mit CGI einen HTTP-Header aus.
Das verstehe ich leider nicht.

>> Mit File-Find kannst du alle Dateinamen eines Verzeichnisses und dessen Unterverzeichnisse auslesen
Wen ich die CPAN-Doku recht verstehe, geht dies nur für Verzeichnisse innerhalb der akt. Domain

>>Andere Methode im Wiki Wissensbasis/EinUndAusgabeDateinamenImVerzeichnisAuslesen
Auch das geht, wie ich vermute nur auf dem akt. Server
Struppi
 2009-01-05 15:12
#117582 #117582
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
wastl+2009-01-05 14:10:03--
Ich habe vollen Zugriff auf die Verzeichnisse.
Das spielt keine Rolle, hat Perl zugriff auf deise Verzeichnisse? Liegen sie auf dem gleichen server?
Wenn nicht, geht es nur so wie ich schon beschrieben habe.
wastl
 2009-01-05 15:37
#117584 #117584
User since
2005-02-13
40 Artikel
BenutzerIn
[default_avatar]
Ich habe jetzt ein FTP-Beispiel gefunden und es auf meinem lokalen System getestet, leider mit einer Fehlermeldung, die sicher nur von Superexperten verstanden wird.
Aber vielleicht erkennt ihr ja am Perl-Code schon einen Fehler.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
#!/usr/bin/perl -w
use strict;
use CGI::Carp qw(fatalsToBrowser);
use LWP::UserAgent;
use Net::FTP;
my $url = "www.dom2.test";
my $ftp = Net::FTP->new($url, Debug => 0)
      or die "Cannot connect to $url: $@";
$ftp->ls("/index");
$ftp->quit;



Und hier die Meldung:

Software error:

No errno EINPROGRESS at C:/xampp/perl/site/lib//Errno.pm line 82
Errno::FETCH('Errno=ARRAY(0x2bffb50)', 'EINPROGRESS') called at C:/xampp/perl/lib/IO/Socket.pm line 115
IO::Socket::connect('Net::FTP=GLOB(0x2bcdfa4)', '\x{2}\x{0}\x{0}\x{15}\x{7f}\x{0}\x{0}\x{2}\x{0}\x{0}\x{0}\x{0}\x{0}\x{0}\x{0}\x{0}') called at C:/xampp/perl/lib/IO/Socket/INET.pm line 257
IO::Socket::INET::connect('Net::FTP=GLOB(0x2bcdfa4)', '\x{2}\x{0}\x{0}\x{15}\x{7f}\x{0}\x{0}\x{2}\x{0}\x{0}\x{0}\x{0}\x{0}\x{0}\x{0}\x{0}') called at C:/xampp/perl/lib/IO/Socket/INET.pm line 232
IO::Socket::INET::configure('Net::FTP=GLOB(0x2bcdfa4)', 'HASH(0x2bd8a10)') called at C:/xampp/perl/lib/IO/Socket.pm line 48
IO::Socket::new('Net::FTP', 'PeerAddr', 'www.dom2.test', 'PeerPort', 'ftp(21)', 'LocalAddr', 'undef', 'Proto', 'tcp', ...) called at C:/xampp/perl/lib/IO/Socket/INET.pm line 37
IO::Socket::INET::new('Net::FTP', 'PeerAddr', 'www.dom2.test', 'PeerPort', 'ftp(21)', 'LocalAddr', 'undef', 'Proto', 'tcp', ...) called at C:/xampp/perl/site/lib//Net/FTP.pm line 84
Net::FTP::new('Net::FTP', 'www.dom2.test', 'Debug', 0) called at C:/dom1/cgi-bin/Dir_Lesen.pl line 10
ModPerl::ROOT::ModPerl::PerlRun::C_3a_dom1_cgi_2dbin_Dir_Lesen_2epl::handler('Apache2::RequestRec=SCALAR(0x2ba923c)') called at C:/xampp/perl/site/lib/ModPerl/RegistryCooker.pm line 204
eval {...} called at C:/xampp/perl/site/lib/ModPerl/RegistryCooker.pm line 204
ModPerl::RegistryCooker::run('ModPerl::PerlRun=HASH(0x2c41614)') called at C:/xampp/perl/site/lib/ModPerl/RegistryCooker.pm line 170
ModPerl::RegistryCooker::default_handler('ModPerl::PerlRun=HASH(0x2c41614)') called at C:/xampp/perl/site/lib//ModPerl/PerlRun.pm line 31
ModPerl::PerlRun::handler('ModPerl::PerlRun', 'Apache2::RequestRec=SCALAR(0x2ba923c)') called at -e line 0
eval {...} called at -e line 0
GwenDragon
 2009-01-05 15:43
#117585 #117585
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
wastl+2009-01-05 14:11:44--
>> Gib mit CGI einen HTTP-Header aus.
Das verstehe ich leider nicht.

Ich wußte deinen Wissenstand nicht.

Code: (dl )
1
2
3
use CGI;
my $cgih = new CGI;
print $cgih->header;


[quote]>> Mit File-Find kannst du alle Dateinamen eines Verzeichnisses und dessen Unterverzeichnisse auslesen
Wen ich die CPAN-Doku recht verstehe, geht dies nur für Verzeichnisse innerhalb der akt. Domain
WIe innerhalb der aktuellken Domain?

Wo sind denn die anderen Domains? Auf verschiedenen Servern?

Quote
>>Andere Methode im Wiki Wissensbasis/EinUndAusgabeDateinamenImVerzeichnisAuslesen
Auch das geht, wie ich vermute nur auf dem akt. Server
Das geht auf dem Server wo dein Skript laufen soll.
Struppi
 2009-01-05 15:54
#117586 #117586
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
wastl+2009-01-05 14:37:03--
Ich habe jetzt ein FTP-Beispiel gefunden und es auf meinem lokalen System getestet, leider mit einer Fehlermeldung, die sicher nur von Superexperten verstanden wird.
Aber vielleicht erkennt ihr ja am Perl-Code schon einen Fehler.
einmal scheint an deiner Installation ein paar Sachen nicht stimmig zu sien und dann solltest du dir mal die Doku durchlesen, da du dich so nicht mit einem FTP server verbinden kannst oder ist dieser ungeschützt?
renee
 2009-01-05 16:24
#117587 #117587
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Dokus:

* CPAN:CGI
* CPAN:Net::FTP
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< |< 1 2 3 4 ... 6 >| >> 53 Einträge, 6 Seiten



View all threads created 2009-01-05 13:02.