• Publicidad

Consulta sobre XML

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Notapor explorer » 2008-06-10 18:23 @807

Un bucle while mientras el usuario no indique que no quiere seguir metiendo más datos...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14477
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Publicidad

Notapor situ » 2008-06-11 15:41 @695

Explorer,
Sé que me vas a odiar pero no sé en qué estoy fallando pero no logro el while :s
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

Notapor explorer » 2008-06-11 17:27 @769

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
while ( 'el usuario no entre un FIN' ) {
    print "Nombre del host (FIN para terminar):";
    chomp(my $host = <>);
    last if $host eq 'FIN';
    # el resto de la entrada
    # actualizar xml
}
# grabar xml
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14477
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor situ » 2008-06-11 19:31 @855

Gracias.
Ahora tengo otro problemita.
Al crear cada usuario también se crea el archivo con su password, pero al hacer lo siguiente:
[~][situ]# ./kk.pl -name=marcos -usuario=root -descrypt

Me muestra el password del usuario "root" como yo le pedí pero como usuario "admin", en vez de admin :s

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl -s
#use strict;
#use warnings;
use POSIX qw(strftime);
my $hday= strftime("%Y%m%d", localtime);

##Verificacion del modulo XML::Simple
BEGIN {
    eval "use XML::Simple";
    if ( $@ ) {
        warn  "Error al cargar el modulo: XML::Simple\n"
            . "Instalar Modulo:\n"
            . "\t\tcpan XML::Simple\n\n";
        exit();
    }
}

our $crear;
our $name;
our $notes;
our $ip;
our $url;
our $descrypt;
our $usuario;

## Ayuda del sistema
if ( !$name and !$notes and !$ip and !$url and !$crear and !$descrypt and !$usuario) {
    die "Uso: $0 [-name|-notes|-ip|-url|-crear|-descrypt]\n"
      . "\t-name=pc                                                              Busqueda por nombre del host\n"
      . "\t-notes=test                                                       Busqueda por nota\n"
      . "\t-ip=1.1.1.1                                                           Busqueda por direccion IP\n"
      . "\t-url=https://10.0.0.1                                         Busqueda por url\n"
      . "\t-crear                                            Adjuntar nuevos contenidos\n"
      . "\t-name=pc -usuario=admin -descrypt                Desencriptar password\n"
      ;
}

my $info = XMLin('kk.xml', KeyAttr => 1, ForceArray => [ 'user' ]);

if ( $name and $usuario and $descrypt ) {
            print "- Ingresar password de la key gpg\n";
            system("gpg --no-options $name.$usuario.pw.asc");
            open my $FILE, '<', "$name.$usuario.pw" or die $!;
        my @lines = <$FILE>;
            for my $pc ( @{$info->{technology}{pc}} ) {
        next if $name  and $pc->{name}  !~ /^$name$/  and $user->{name} !~ /^$usuario$/;
        print "$pc->{name} => $pc->{url} ($pc->{ip})\n";
    for my $user ( @{$pc->{user}} ) {
        print "\t   $user->{name} : @lines\n";
        system("rm -f $name.$usuario.pw");
                close $FILE;
                exit ();
        }
    }


}

if ( !$crear ) {
    for my $pc ( @{$info->{technology}{pc}} ) {
        next if $name  and $pc->{name}  !~ /^$name$/;
        next if $notes and $pc->{notes} !~ /^$notes$/;
        next if $ip    and $pc->{ip}    !~ /^$ip$/;
        next if $url   and $pc->{url}   !~ /^$url$/;
        print "$pc->{name} => $pc->{url} ($pc->{ip})\n";
        for my $user ( @{$pc->{user}} ) {
            print "\t   $user->{name} : $user->{password}\n";
        }
    }
}

else {
 print "- Ingresar nombre del Host: ";
    my $hname=<STDIN>;
    chop($hname);
    print "- Ingresar url: ";
    my $hurl=<STDIN>;
    chop($hurl);
    print "- Ingresar IP: ";
    my $hip=<STDIN>;
    chop($hip);
    print "- Ingresar notas: ";
    my $hnota=<STDIN>;
    chop($hnota);    
  while ( 'el usuario no entre un FIN' ) {
    print "- Nombre de usuario (FIN para terminar):";
    chomp(my $huser = <>);
    last if $huser eq 'FIN';
## Creacion del archivo del password y la encriptacion
    open  (my $NHOST , "> $hname.$huser.pw");
    print "- Ingresar password (el password no aparece): ";
    system "stty -echo";
    my $hpass=<STDIN>;
    chop($hpass);
    print $NHOST "$hpass";
    close ($NHOST);
    system "stty echo";
        print "\n- Ingresar password de la key gpg\n";
        system("gpg -ac --no-options $hname.$huser.pw");
        system("rm -f $hname.$huser.pw");
##Termina  el archivo del password y la encriptacion

   push @{$info->{technology}{pc}}, {
        name    => $hname,
        url     => $hurl,
        ip      => $hip,
        user    => [{
                        name    => $huser,
                        password=> "$hname.$huser.pw.asc",
                        date    => $hday,
                    }],
        notes   => $hnota,
    };
        }
#use Data::Dumper;
#print Dumper $info;
#Escribo sobre el archivo xml la salida
open  my $SV, q{>:encoding(iso-8859-1)}, 'kk.xml';
print $SV XMLout($info, RootName => 'owner', XMLDecl => 1, NoAttr => 1 );
close ($SV)
}
 
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4


Gracias :D
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

Notapor situ » 2008-06-12 13:14 @593

¿Alguno se le ocurre como poder resolverlo :D ?
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

Notapor explorer » 2008-06-12 15:33 @690

Yo no entiendo la pregunta...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14477
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor situ » 2008-06-12 15:42 @695

Antes que nada gracias explorer por responder.
El problema es el siguiente:
Ahora para desencriptar el password, utilizo aparte del nombre del host el usuario, ya que ahora puedo agregar varios usuarios a la lista del HOST, con esto tengo:
./kk.pl -name=marcos -usuario=root -descrypt

Ahora esta operatoria anda pero el resultado que me da es:

marcos => http://hola.com (1.1.1.1)
admin : situ

El password es el correcto es el del usuario "root", pero me muestra como usuario "admin", ese es el "problema".
Gracias
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

Notapor explorer » 2008-06-12 16:30 @729

No es cosa del programa. Ese "admin" está dentro del XML.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14477
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor situ » 2008-06-12 17:50 @784

Claro exacto, es el primero usuario que cargue para ese Host, pero no sé cómo hacer para que me muestre como usuario "root" ya que me da bien su password pero me dice "admin".
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

Notapor explorer » 2008-06-12 18:01 @792

Abre el fichero XML con un editor de textos y busca por la palabra "admin", y la cambias.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14477
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

AnteriorSiguiente

Volver a Intermedio

¿Quién está conectado?

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

cron