• Publicidad

Salida de una consulta LDAP

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Salida de una consulta LDAP

Notapor newperlero » 2011-07-26 04:48 @241

Buenas perleros,

Estoy haciendo unas consultas a LDAP, y no sé cómo hacer para comprobar que la consulta devuelve datos.
Lo que necesito hacer con esta consulta es saber si un usuario existe en el ldap o no, he intentado comprobar el valor de $entrada dentro del foreach (if $entrada eq "" ... o if $entrada eq " "), pero no me funciona.
No sé como tratar la información que devuelve la consulta, lo único que consigo es hacer un dump, pero ni siquiera he conseguido redirigir la salida del dump a un fichero, para luego comprobar ahi si el usuario existe o no.
¿ Cómo puedo hacer esto ?

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $user = "admin7890";
  2. my $pass = 'password';
  3. my $ldap_base = 'o=seguridad,c=ar,o=BBDDUSRS';
  4. my $ldap_port= '389';
  5. my $ldap = "produccion.corp.ar";
  6. $ldaps = Net::LDAP->new( $ldap, port => $ldap_port ) or die "$!";
  7. $ldaps->bind($user, password =>$pass, timeout => 10)or die "$!\n";
  8. $salida = $ldaps->search(
  9.         filter=>'(uid=DBATEST)',
  10.         attrs => ['*'],
  11.         base=>$ldap_base,
  12.         );
  13. my @report = $salida->entries;
  14. foreach $entrada (@report) {
  15.         $entrada->dump;
  16. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Última edición por newperlero el 2011-07-26 05:17 @262, editado 1 vez en total
newperlero
Perlero nuevo
Perlero nuevo
 
Mensajes: 42
Registrado: 2011-07-15 06:38 @318

Publicidad

Re: Salida de una consulta LDAP

Notapor explorer » 2011-07-26 07:45 @364

En la línea 7, en vez de $user, ¿no habría que poner $ldap_base?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Salida de una consulta LDAP

Notapor newperlero » 2011-07-31 10:05 @462

$ldap_base lo puse por error mal al postear en el foro, por no exponer información y lo puse mal, lo siento.

Finalmente conseguí hacer lo que quería usando el método get_value; me costó dar con el pero al final lo conseguí. Posteo la solución por si le puede servir a alguien, lo que quería hacer era encontrar a todos los usuarios cuyo dn empezara por 'u0' y guardarlos en un hash:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $ldap = '192.168.254.230';
  2. my $user = 'xadm04';
  3. my $pass = 'password'
  4. my $ldap_port = '389';
  5. my $ldap_base = 'DC=ar,DC=sfi,DC=org';
  6. my %admins;
  7. $conexion = Net::LDAP->new( $ldap, port => $ldap_port ) or die "$!\n";
  8. $conexion->bind($user, password =>$pass, timeout => 10)or die "$!\n";
  9. $salida = $conexion->search(
  10.         filter=>"(&(objectClass=person)(dn=u0*))",
  11.         attrs => ['*'],
  12.         base=> $base,
  13.         );
  14. foreach $entrada ($salida->entries) {
  15.         my $var = $entrada->get_value('dn');
  16.         $admins{$var} = 1;
  17. }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
newperlero
Perlero nuevo
Perlero nuevo
 
Mensajes: 42
Registrado: 2011-07-15 06:38 @318


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 37 invitados

cron