dc=prog,dc=com,dc=tw
ou=Host
ou=People(referral to server1)
uid=ccc
ou=se4 (referral to server2)
uid=aaa
uid=bbb
The code result will list ou=Host , uid=aaa , uid=bbb and it attr.
But Can not list ou=People ou=se4 (or any information).
How to list those referral information?
#!/usr/bin/perl -w
use Net::LDAP;
$Server="211.XX.XX.XX";
$BaseDN="cn=Manager,dc=prog,dc=com,dc=tw";
$Passwd="abc123";
$DN=shift || "dc=prog,dc=com,dc=tw";
my $ldap=new Net::LDAP($Server);
my $mesg=$ldap->bind("$BaseDN",password=>"$Passwd",version => 3);
$ldap->search(base=>"$DN",scope=>"subtree",filter=>"(objectClass=*)",callbac
k => \&handle_object,);
sub handle_object {
my $msg = shift; # Net::LDAP::Message object
my $data = shift; # May be Net::LDAP::Entry or Net::LDAP::Reference
return unless $data;
return handle_entry( $msg, $data ) if $data->isa("Net::LDAP::Entry");
return handle_reference( $msg, $data ) if
$data->isa("Net::LDAP::Reference");
return;
}
sub handle_entry {
my $msg = shift;
my $entry = shift;
foreach my $attr ($entry->attributes()) {
my @value=$entry->get_value($attr);
foreach my $value(@value){
print ' <attr name="' . $attr . '"><value>' . $value .
'</value></attr>' . "\n";
}
}
}
sub handle_reference {
my $msg = shift;
my $data = shift;
foreach my $obj( $data->references() ) {
# Oooh, recursion! Might be a reference to another reference, after all
return handle_object( $msg, $obj );
}
}
"news.hinet.net" <[EMAIL PROTECTED]> �b�l�� news: �����g...
> The ldap_error_text($mesg->code()) ahow this messgae when i search an ou
> that referral
> to another server. Ok! I know this is a referral .But how to solve this
> problem?
> How to search the remote server data and what is the server info ?
>
>