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 "*"
とすると全検索です。ダブルクォーテーションで括るのが判らず少し悩みました。
ではー。