【问题标题】:Export/import LDAP data using perl script使用 perl 脚本导出/导入 LDAP 数据
【发布时间】:2014-04-23 05:06:56
【问题描述】:

我是 openLDAP 和 perl 的新手。我想从 LDAP 数据库导出/导入带有/不带有模式的 LDAP 数据。使用 perl 脚本可以做到这一点吗?如果是,请给我一个示例代码。 我想在没有 dns 的情况下使用 openLDAP 和 perl 创建一个新架构。如何做到这一点?

【问题讨论】:

    标签: perl openldap


    【解决方案1】:

    这一项问题太多了。请一次问一个问题。

    如何从 Perl 中读取 Ldap:

    use strict;
    use warnings;
    use Data::Dumper;
    ### for ldap  
    use Convert::ASN1;  
    use Net::LDAP;
    use Net::LDAP::Util qw(ldap_error_name canonical_dn ldap_explode_dn ldap_error_text);
    use Net::LDAP::LDIF;
    
    my %parms (
      host => 'localhost',
      port => 389,
      binddn => 'your dn',
      passwd => 'password',
      base => "",
      filter => "(objectclass=*)",
      scope => "base",
      attrs => ['*'],
    
    );
    my $ldif = Net::LDAP::LDIF->new( "out.ldif", "w", onerror => 'die', wrap  => 0 );
    my $ldap= Net::LDAP->new($parms{'host'}, port => $parms{'port'}); 
    my $bind_result = $ldap->bind($parms{'binddn'},'password' => $parms{'passwd'},'version' => '3');
    if($bind_result->is_error()) {
      die ('Unable to bind to ' . $parms{'host'} . ': '.$bind_result->error()); 
    }
    my @search_args = (
        'base'     => $parms{"base"},               
        'scope'    => $parms{'scope'},                             
        'filter'   => $parms{'filter'},
        'attrs'    => $parms{'attrs'},
        'deref'    => 'always',
    );
    
    my $msg = $ldap->search(@search_args);
    if ($msg->is_error()) {
        die "ERROR: ".Dumper(\@search_args).", ".$msg->error."\n";  
    }
    while (my $entry = $msg->pop_entry()){
        my $cn = $entry->get_value("cn");
        print "cn: $cn\n";
    }
    

    【讨论】:

      猜你喜欢
      • 2020-03-23
      • 1970-01-01
      • 2016-01-20
      • 2012-04-18
      • 2018-07-20
      • 1970-01-01
      • 2020-10-04
      • 2022-12-09
      • 1970-01-01
      相关资源
      最近更新 更多