部屋を掃除したら漫画が沢山出てきたので書く日記

漫画とか合唱とかUNIXとかLinuxとかについて書く日記です。

Net::LDAPで検索

まんまこちらCPANの説明に書いてある事しかしていないのですが、自分で書いて嬉しかったのでここに記しておきます。

メールアカウント情報の検索です。

#!/usr/bin/perl

use strict;
use Net::LDAP;
$\ = "\n";

if ($#ARGV != 0) {
    print "usage: $0 ID\n";
    exit 1;
}

my $id = $ARGV[0];
my $ldap_serv = 'localhost';
my $ldap = Net::LDAP->new($ldap_serv) or die "$@";

#$ldap->bind;
$ldap->bind('binddn', password => 'password');
my $mesg = $ldap->search(
    base   => "dc=hoge,dc=com",
    filter => "mail=$id",
);
$mesg->code && die $mesg->error;
foreach my $entry ($mesg->all_entries) {
#    $entry->dump;
    print $entry->get_value('mail');
}
$ldap->unbind;
exit 0;

LDAPサーバのポートが389で稼動している事、LDAPサーバ上で実行している事が前提です。まあそこは直せば良いんだけど。

実行する際に

% ./test.pl "*" 

とすると全検索です。ダブルクォーテーションで括るのが判らず少し悩みました。

ではー。