[Dresden-pm] Frage zu Net::LDAP::LDIF
Hans-Dietrich Kirmse
hd.kirmse at gmx.de
Sa Aug 4 06:32:48 PDT 2007
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