- 论坛徽章:
- 0
|
接触LDAP一周,领导要求用perl 完成查询的工作。例子是从网上找得,但是始终失败,怀疑是search的base没有设置对,但不确定。弱弱的问一句,这个base是指什么?有些什么规定?
代码:
#!/usr/bin/perl -w
use Net::LDAP;
use Net::LDAP::Util qw(ldap_error_text);
$ldap=Net::LDAP->new('10.158.158.8') or die "1 $@\n";
$ldap->bind(version =>3) or die "2 $@\n";
my @Attrs = ();
my $result = LDAPsearch ( $ldap, "s=yang" );
##########################################################################################
my $href = $result->as_struct;
my @arrayOfDNs = keys %$href;
foreach ( @arrayOfDNs ) {
print $_, "\n";
my $valref = $$href{$_};
my @arrayOfAttrs = sort keys %$valref; #use Attr hashes
my $attrName;
foreach $attrName (@arrayOfAttrs) {
next if ( $attrName =~ /;binary$/ );
my $attrVal = @$valref{$attrName};
print "\t $attrName: @$attrVal \n";
}
print "#-------------------------------\n";
}
##########################################################################################
sub LDAPsearch
{
my ($ldap,$searchString,$attrs,$base) = @_;
if (!$base ) { $base = "OU=SGI,OU=PRC,OU=INT,DC=ad,DC=inc,DC=com"; } #问题是不是在这里?
if (!$attrs ) { $attrs = [ 's','g' ]; }
my $result = $ldap->search ( base => "$base", #问题是不是在这里?
#scope => "sub",
filter => "$searchString",
#attrs => $attrs
);
die ("search failed with ",ldap_error_text($result->code()),"\n") if $result->code();
} |
|