Panzer: LDAP Filtern

hey leute
habe ein kleines Problem, undzwar will ich aus dem LDAP mithilfe eines Perl-Scriptes die Emailadressen der Kunden raussuchen.
Soweit so gut, allerdings will ich nur welche mit einer bestimmten Adresse haben, nehmen wir dazu mal '@pseudo.de'

ich habe es damit versucht:

$mesg = $ldap->search(filter=>"(mail=*@pseudo.de)", base=>$readbase, attrs=>['cn', 'sn', 'mail', 'gosaMailAlternateAddress']);

aber da listet er trotzdem noch alle möglichen auf :/

habe mich schon dumm und dämlich gesucht, aber finde einfach nichts - need help plz^^

MfG Panzer

  1. Glaskugel sagt: du tust irgendwas falsch, aber mangels Quellcode von dir und Zugriff auf den LDAP-Server kann man es nicht genau beurteilen. Den korrekten Base-DN kannst du mittels gq rauspfriemeln. Das folgende Beispiel funktioniert für mich:

      
    use Net::LDAP qw();  
    my $ldap = Net::LDAP->new('ldaphost') or die;  
    $ldap->bind;  
      
    my $search = $ldap->search(  
        base   => 'ou=people,dc=example,dc=com',  
        filter => '(mail=*@example.net)',  
        attrs  => [qw(uid mail)],  
    );  
      
    for my $entry ($search->entries) {  
        say $entry->get_value('uid');  
        say $entry->get_value('mail');  
    }  
    
    
    1. Glaskugel sagt: du tust irgendwas falsch, aber mangels Quellcode von dir und Zugriff auf den LDAP-Server kann man es nicht genau beurteilen. Den korrekten Base-DN kannst du mittels gq rauspfriemeln. Das folgende Beispiel funktioniert für mich:

      use Net::LDAP qw();
      my $ldap = Net::LDAP->new('ldaphost') or die;
      $ldap->bind;

      my $search = $ldap->search(
          base   => 'ou=people,dc=example,dc=com',
          filter => '(mail=*@example.net)',
          attrs  => [qw(uid mail)],
      );

      for my $entry ($search->entries) {
          say $entry->get_value('uid');
          say $entry->get_value('mail');
      }

        
      woah der Fehler war einfach zu dumm -.-  
      die Antwort hat mir zwar nur indirekt weiter geholfen, aber trotzdem danke :)  
        
      ich musste beim Filter einfach nur " gegen ' tauschen ^^  
        
      MfG Panzer
      
      1. use warnings; hätte dich auf dein Versehen hingewiesen.