Hi there,

Im trying to get a list of available entries from ldap by simple filter:
attribute cn must be less than 1000 and greater than 500. According to
Net::LDAP documentation this could be done like this:

001: #!/usr/bin/env perl
002: 
003: 
004: use strict;
005: use warnings;
006: 
007: use Net::LDAP;
008: 
009: my $ldap = Net::LDAP->new('192.168.9.111');
010: my $mesg = $ldap->bind('cn=root,dc=lomonosov,dc=parallel,dc=ru',
password => 'rootpw');
011: 
012: $|=1;
013: 
014: print "Searching for uids less than 1000 and gt 500... ";
015: 
016: $mesg =
017:     $ldap->search(
018:         base => "ou=slurm,dc=lomonosov,dc=parallel,dc=ru",
019:         filter => "&(cn<=1000)(cn>=500)"
020:     );
021: 
022: $mesg->code && die $mesg->error;
023: 
024: print "Ok\nFound: ";
025: 
026: print join ", ", map $_->get_value("cn"), $mesg->entries;

But it produces: 

001: Searching for uids less than 1000 and gt 500... Ok
002: Found: 


I know that there is a two hundred or so entries in ldap for this
request, 

001: fisher% ldapsearch -h 192.168.9.111 -D
"cn=root,dc=lomonosov,dc=parallel,dc=ru" -w "rootpw" -b
"ou=slurm,dc=lomonosov,dc=parallel,dc=ru" "&(cn>600)(cn<1000)" |tail -3
002: 
003: # numResponses: 145
004: # numEntries: 144

In fact, the problem experienced on a simple filters with 'less than' or
'greater than' comparisions; complex search filters like
'|(cn=527)(cn=528)' works just fine. What am I doing wrong? How can I
get a list of entries with said filter?

-- 
Serge A. Ribalchenko <vale...@gmail.com>

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to