Merci!

Works like a charm!  Great!!!  :o)

----
Dominic Dupuis


-----Message d'origine-----
De : Megan Kielman [mailto:[EMAIL PROTECTED] 
Envoyé : vendredi 19 janvier 2007 09:30
À : Dupuis, Dominic; Perl-LDAP Mailing List
Objet : Re: Net::LDAP - AD paging

Here is how I do it, this is just a piecemeal representation of a script that I 
currently use but hopefully lyou get the idea. 

use Net::LDAPS;
use Net::LDAP::Control::Paged;
use Net::LDAP::Constant qw( LDAP_CONTROL_PAGED ); 

my $ldap = Net::LDAPS->new($addr) or die "LDAP server could not be contacted. 
Error:$@"; my $page = Net::LDAP::Control::Paged->new( size => 100 );

### binds to DC using above credentials 

my $login = $ldap->bind($user, password=> $pass); my $iserr = $login->is_error;
if ($iserr)     {       # success returns 0
        print "Authentication failed\n";
        exit;
}

my @srcargs1 = (        base    => $path,
                        scope   => "sub",
                        filter  => "(objectClass=group)",
                        control => [ $page ], );

### Main program loop

while (1)       {


        $search = $ldap->search(@srcargs1);
        if ($search->code)      {               # successful search returns 0
                exit print "LDAP Search Failed $?\n"; 
        }

        foreach $entry ($search->entries)       {

                my $grpname = $entry->get_value("name");
                print "Group name is: $grpname\n";

        }

        ### After foreach loops ends, client checks LDAP server reponse of how 
many search results total.
        ### This is a control to end the infinite while loop if there are no 
search results to go through 
        ### If there are search results, this control will always return the 
total number of results. It is
        ### never decremented
        my ($resp) = $search->control( LDAP_CONTROL_PAGED ) or last;


        ### Obtaining the cookie from the search result. When no more results, 
cookie will be NULL
        ### and infinite while loop will terminate.
        $cookie = $resp->cookie or last;


        ### Sets cookie so server knows the next search result to send 
        $page->cookie($cookie);
}

### This is a control to check for abnormal exit of the while loop. If this 
occurs ### we need to tell the LDAP server that remaining search results are no 
longer needed ### by sending a search request with a page size of 0
if ($cookie)    {
        $page->cookie($cookie);
        $page->size(0);
        $ldap->search(@srcargs1);
}






On 1/19/07, Graham Barr <[EMAIL PROTECTED]> wrote:

        Begin forwarded message:
        > From: <[EMAIL PROTECTED]>
        > Date: January 18, 2007 2:27:35 PM CST
        > To: <[EMAIL PROTECTED] >
        > Subject: Net::LDAP - AD paging
        > Message-Id:
        > <[EMAIL PROTECTED] >
        >
        > Graham,
        >
        >     I need to do an LDAP search, via Net::LDAP, on a AD server.
        > Since I receive back only 1000 objects, I would like to use the
        > "paging" feature to receive all responses from my server. 
        >
        >     Do you have any example on how to do paging search via your
        > Net::LDAP module?  I search over the web and I found no example...
        >
        >     Thanks a lot for any help!
        >
        >     Bye! 
        >
        > ----
        > Dominic Dupuis

        
        


Reply via email to