[Dresden-pm] Frage zu Net::LDAP::LDIF

ReneeB mailinglisten at renee-baecker.de
Sa Aug 4 06:50:26 PDT 2007


Hallo,

probier mal:

# wir schreiben die Datensaetze in das File
$ldif = Net::LDAP::LDIF->new( *STDOUT, "w", onerror => 'undef' );
$ldif->write_entry($mesg->entries);
$ldif->done();


Gruß,
Renée


Hans-Dietrich Kirmse wrote:
> Hallo,
>
> euer Zaungast aus Thüringen braucht wiedermal Hilfe ;)
>
> Ich habe den LDAP-Workshop durchgeackert und da dieser sehr verständlich 
> geschrieben ist, erschließt sich mir trotz fehlender Englischkenntnisse 
> auch die (bei weitem nicht so eingängige) Doku zu anderen LDAP-Modulen.
>
> Mein Problem: ich möchte den LDAP nach etwas abfragen und das Ergebnis 
> der Abfrage in ein LDIF-File schreiben bzw. auf die Standardausgabe.
> Das mit den LDIF-File gelingt problemlos (ob das besser geht, weiss ich 
> nicht, wäre aber für Hinweise dankbar), aber mein eigentliches Problem 
> ist: wie schreibe ich das auf die Standardausgabe?
>
> was bei mir auch nicht geklappt hat, dass in dem LDIF-File dann die
> Version steht. will sagen, eine Zeile wie:
>
>      $ldif->write_version();
>
> geht bei mir nicht. :(
>
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> #!/usr/bin/perl -w
> use strict;
>
> use Net::LDAP;
> use Net::LDAP::LDIF;
>
> my $myfile = '/home/schueler_daten.ldif';
> my $filter = 'uid=*';
>
> my (@daten, $ldap_base, $ldap, $mesg, $ldif);
>
> # wir oeffnen die die ldap.conf
> open DATEI, '<', '/etc/ldap.conf'
>    or die "konnte ldap.conf nicht oeffnen, $!\n";
>
> # wir lesen solange Zeilen ein, bis wir die Suchbasis ($ldap_base) haben
> while (my $zeile = <DATEI>) {
>    if ($zeile =~ m/^\s*base\s+(\w.*\w)\s*$/) {
>      $ldap_base = $1;
>      last;
>    }
> }
>
> # wir schliessen die Datei
> close DATEI;
>
>
> # wir verbinden uns mit den LDAP
> $ldap = Net::LDAP->new('127.0.0.1',version => 3) or die "$@";
> $ldap->bind or die "konnte mich nicht mit dem Server verbinden";
>
> # wir holen uns von den Schuelern die Daten (in denen das Login steht)
> $mesg = $ldap->search(base => "ou=SCHUELER, o=SCHULE, $ldap_base",
>                        filter => $filter );
> $mesg->code and die $mesg->error;
>
> # wir trennen uns vom LDAP
> $ldap->unbind;
>
> # wir schreiben die Datensaetze in das File
> $ldif = Net::LDAP::LDIF->new( $myfile, "w", onerror => 'undef' );
> $ldif->write_entry($mesg->entries);
> $ldif->done();
>
> __END__
>
>
> Für eure Hinweise im Voraus meinen Dank
>
> Mit freundlichen Grüßen
> Hans-Dietrich
>
> _______________________________________________
> Dresden-pm mailing list
> Dresden-pm at pm.org
> http://mail.pm.org/mailman/listinfo/dresden-pm
>
>
>