ldap2xml.pl

#!/usr/bin/perl
use Net::LDAP;
use XML::Simple;

my $XML = XML::Simple->new(NoAttr=>0,
                RootName=>'LDAPDump',
                ForceArray=>1 );

my $LDAP = Net::LDAP->new( $ARGV[0] );

my $Message = $LDAP->bind( $ARGV[1],
                password => $ARGV[2] );

if ( defined($Message) )
{

   $Message = $LDAP->search( base   => “”,
        filter => qq{($ARGV[3])});
        foreach my $Entry ($Message->entries)
        {
                if ( defined($Entry) &&
                        ref($Entry) eq ‘Net::LDAP::Entry’ )
                {
                        print $XML->XMLout($Entry->{asn});
                }
        }

        $Message = $LDAP->unbind;
}

Its no problem to use…
shell$ ./ldap2xml.pl ldap_host "uid=whoever,cn=whatever" password "filter_attribute=value"

Requires…
Net::LDAP from CPAN & XML::Simple from CPAN

Leave a Reply