LDAP搜索用户DN返回哈希 - Perl

时间:2017-10-31 19:01:37

标签: perl hash ldap dn

我要做的就是搜索用户并在Perl脚本中返回用户的DN。但是,我的脚本正在打印对哈希的引用,而不是用户的实际DN。

以后需要将DN放入另一个变量中,因此我需要DN正确。

这是我的代码:

use strict;
use warnings;

use Net::LDAPS;
use Net::LDAP;
use Config::Simple;
use Try::Tiny;

#LDAP connection.
my $ldap;

my $hostname = "Hostname";
my $port = 2389;
my $rootDN = "username";
my $password = "password";

#Connect to LDAP
$ldap = Net::LDAP->new( $hostname, port => $port ) or die $@;

#Send username and password
my $mesg = $ldap->bind(dn => $rootDN, password => $password) or die $@;


my $result = $ldap->search(
  base   => "ou=AllProfiles",
  filter => "(cn=Alice Lee)",
  attrs => ['*','entrydn'],
);

my $href = $result;
print "$href\n";

这是我的输出:

enter image description here

有谁知道我为什么会这样?或者知道如何解决它?

谢谢!

1 个答案:

答案 0 :(得分:0)

您将获得一个完整的对象,您需要从中获取结果,并从中导航到您想要的内容。我相信这会有效,如果确实如此" entrydn"是正确的名称。

my $entries = $result->entries;
my $dn = $entries[0]->get_value('entrydn');

(如果你希望返回多个条目,当然你必须进行迭代。如果你没有得到任何结果,你也需要检查它。)