Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Using Net::LDAP to access and update LDAP directories

by araqnid (Beadle)
on Sep 13, 2000 at 01:19 UTC ( [id://32196]=perltutorial: print w/replies, xml ) Need Help??

Help for this page

Select Code to Download


  1. or download this
      my $hostname = "ldap.example.com";
      my $ldap = Net::LDAP->new($hostname)
       or die "Unable to connect to LDAP server $hostname: $@\n";
    
  2. or download this
      my $result = $ldap->bind();
    
  3. or download this
      my $binddn = "uid=jblow, ou=People, dc=Example, dc=Com";
      my $password = readpassword();
      my $result = $ldap->bind(dn => $binddn, password => $password);
    
  4. or download this
      my $result = $ldap->bind();
      if ($result->code) { # This makes Net::LDAP get the server response
        die "An error occurred binding to the LDAP server\n";
      }
    
  5. or download this
      use Net::LDAP::Util qw(ldap_error_text);
      my $result = $ldap->bind();
    ...
        die "An error occurred binding to the LDAP server: "
             .ldap_error_text($result->code)."\n";
      }
    
  6. or download this
      sub ldapassert {
        my $mesg = shift;
    ...
        return $mesg;
      }
      my $result = ldapassert($ldap->bind(), "binding to the server");
    
  7. or download this
      my $searchresult = $ldap->search(base => "ou=People, dc=Example, dc=
    +Com",
                                       filter => "(objectClass=posixAccoun
    +t)",
                               scope => "one",
                                       attrs => ['cn', 'accountStatus'] );
    
  8. or download this
       my $searchresult = do_search($ldap);
       foreach my $entry ($searchresult->entries) {
         print "Matched: ", $entry->dn, "\n";
       }
    
  9. or download this
      my $sr = ldapassert($ldap->search(base => "ou=People, $ourdn",
                                        filter => "(objectClass=person)"
    ...
       my $uid = ${$entry->get('uid')}[0];
       print "$uid: $cn\n";
      }
    
  10. or download this
      sub changename {
        my $entry = shift;
        my $newname = shift;
        $entry->replace(cn => $newname);
      }
    
  11. or download this
      # Add "extraClass" to everyone's "objectClass" attribute.
      my $sr = ldapassert($ldap->search(base => $ourdn, filter => "(object
    +Class=person)"), "searching the LDAP server");
    ...
       $_->add(objectClass => "extraClass");
       ldapassert($_->update($ldap), "updating the LDAP server");
      }
    
  12. or download this
       $_->replace(objectClass => [@{$_->get("objectClass")}, "extraClass"
    +]
    

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perltutorial [id://32196]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others studying the Monastery: (4)
As of 2024-03-29 09:05 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found