Perl 的NET::LDAP模块中包括有完整的LDAP目录访问函数,只要安装NET::LDAP就可以完成正常的LDAP目录访问;但在安装NET::LDAP模块前,必须先安装Convert::ASN1模块,该模块可以从CPAN下载。
例:
#!/usr/bin/perl
use warnings;
use strict;
use Net::LDAP;
use Net::LDAP::Util qw(ldap_error_text);
my $server = "localhost";
my $ldap = new Net::LDAP($server) ||
die("failed to connect to server.$!\n");
my $mesg = $ldap->bind("cn=Manager,dc=daifu,dc=com", password => "secret");
die ("bind failed with ",ldap_error_text($mesg->code()),"\n")
if $mesg->code();
$mesg = $ldap->search(base => "dc=daifu,dc=com", scope => "sub",
filter => "sn=*",);
die ("search failed with ",ldap_error_text($mesg->code()),"\n")
if $mesg->code();
print "Count is ",$mesg->count(),"\n";
while (my $entry = $mesg->shift_entry()) {
print "dn:",$entry->dn(),"\n";
for my $attr($entry->attributes()) {
for my $val($entry->get_value($attr)) {
print "$attr:$val\n";
}
}
print "\n";
}
操作过程实际上与C和JAVA是一样的。