Net::LDAP, Active Directory, alle gültigen EMail Adressen finden

05/09/2008 - 11:24 von Helmut Schneider | Report spam
Hi,

ich nutze Net::LDAP, um ein Active Directory nach gültigen EMailadressen
abzugrasen.

http://www.developer.com/open/artic..._3106601_2

#!/usr/bin/perl
use strict;
use Net::LDAP;
my $ad = Net::LDAP->new("ad.wjgilmore.com")
or die "Could not connect!";
$ad->bind("ad-web\@ad.wjgilmore.com", password=>"secret");
my $searchbase = 'OU=People,OU=staff,DC=ad,DC=wjgilmore,DC=com';
my $filter = "memberof=CN=staff,OU=groups,DC=ad,DC=wjgilmore,DC=com";
my $attrs = "proxyAdresses";
my $results = $ad->search(base=>$searchbase,filter=>$filter,attrs=>$attrs);
my $count = $results->count;
print "Total entries returned: $count";
my $entry;
for (my $i=0; $i<$count; $i++) {
$entry = $results->entry($i);
print $entry->get_value($attrs)."";
}
$ad->unbind;

Das Problem ist nun, dass das Feld "proxyAddresses" mehrere Zeilen enthàlt,
die bei "get_value" nicht mit ausgegeben werden. Hier wird nur die erste
Zeile angezeigt.
Ich hab schon gesehen, dass "get_value" noch weitere Optionen kennt, die
dann entweder ein "HASH" oder ein "ARRAY" zurück geben, aber da ist dann
mein (Perl-)Latein vollends am Ende:

http://kobesearch.cpan.org/htdocs/p...TR_OPTIONS

Wie komme ich denn an alle Werte ran?

Danke und Gruß, Helmut

No Swen today, my love has gone away
My mailbox stands for lorn, a symbol of the dawn
 

Lesen sie die antworten

#1 Helmut Schneider
05/09/2008 - 20:52 | Warnen spam
Helmut Schneider wrote:

ich nutze Net::LDAP, um ein Active Directory nach gültigen EMailadressen
abzugrasen.

http://www.developer.com/open/artic..._3106601_2

#!/usr/bin/perl
use strict;
use Net::LDAP;
my $ad = Net::LDAP->new("ad.wjgilmore.com")
or die "Could not connect!";
$ad->bind("ad-web\@ad.wjgilmore.com", password=>"secret");
my $searchbase = 'OU=People,OU=staff,DC=ad,DC=wjgilmore,DC=com';
my $filter = "memberof=CN=staff,OU=groups,DC=ad,DC=wjgilmore,DC=com";
my $attrs = "proxyAdresses";
my $results > $ad->search(base=>$searchbase,filter=>$filter,attrs=>$attrs);
my $entry;



foreach $entry ($results->entries) {
foreach my $mail ($entry->get_value("proxyAddresses")) {
if ($mail =~ /smtp:/i) {
print $mail . "";
}
}
}

So einfach...

No Swen today, my love has gone away
My mailbox stands for lorn, a symbol of the dawn

Ähnliche fragen