#!/usr/bin/perl -w
######################################################################
# (c) Michael Schilli 1999
######################################################################

use LWP::RobotUA;
use File::Listing;
                    # Robot erzeugen
$robot = LWP::RobotUA->new('my_fair_robot/1.0', 
                           "me\@mysite.com");

                    # Verzeichnis rekursiv untersuchen
deep_scan('ftp://remote.host.com/pub');

###############################################################
# Verzeichnis rekursiv durchsuchen: deep_scan($url_string);
###############################################################
sub deep_scan {
    my $url_string = shift;

                    # Verzeichnis spezifizieren
    my $request = HTTP::Request->new('GET', $url_string);

                    # Netzzugriff ausführen
    my $response = $robot->request($request);

                    # Fehlerprüfung 
    $response->is_success() || die $response->message();

                    # Listing verarbeiten
    for (File::Listing::parse_dir($response->content())) {
        my ($name, $type, $size, $mtime, $mode) = @$_;

                    # Dateien: URL und Länge ausgeben
        print "$url_string/$name ($size)\n" if $type eq "f";

                    # Verzeichnisse: Weitersuchen
        deep_scan("$url_string/$name") if $type eq "d";
    }
}
