Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Consulta sobre Nmap::Scanner
Ir a página Anterior  1, 2, 3, 4
 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Módulos
Mensaje Mie Feb 13, 2008 8:58 pm
situ
Perlero Frecuente
Perlero Frecuente
Registrado: 09 Abr 2007
Mensajes: 132
Responder citando

Ah ok.
Consulta ¿pero "display:none" es propio del CGI? ¿o estás usando expresiones de CSS?
Mensaje Jue Feb 14, 2008 3:31 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 3889
Ubicación: Valladolid, España
Responder citando

Es una característica del CSS. Bueno... es un estilo de algunos de los componentes HTML de una página.
Mensaje Vie Feb 15, 2008 7:44 am
situ
Perlero Frecuente
Perlero Frecuente
Registrado: 09 Abr 2007
Mensajes: 132
Responder citando

Ah.
Serías tan amable de pasarme algún link o si podes de mostrarme un ejemplo más sencillo utilizando el código anterior.
Gracias.
Mensaje Vie Feb 15, 2008 9:29 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 3889
Ubicación: Valladolid, España
Responder citando

http://www.w3schools.com/css/pr_class_display.asp
Mensaje Vie Feb 15, 2008 12:03 pm
situ
Perlero Frecuente
Perlero Frecuente
Registrado: 09 Abr 2007
Mensajes: 132
Responder citando

Explorer,
Perdón que te moleste nuevamente, pero estoy probando y puedo hacer que no se vea el tr, por ejemplo. En realidad me gustaría tratar que sea como lo hiciste vos.
Digamos ver el título de la tabla pero que el contenido esté oculto y verlo recién al hacerle click al título. ¿Me podrías ayudar :d ?
En la hoja 1 dejé el código actualizado.
La que quiero hacer desaparecer es la que me muestra "Host description".
Gracias.
Mensaje Vie Feb 15, 2008 6:08 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 3889
Ubicación: Valladolid, España
Responder citando

Pero si mi JavaScript está escrito en el código... es una función (cambia()) que hace eso: oculta o muestra la fila según se pulse en el título (la fila anterior).

Lo que hay que hacer es: 1.) Meter el código de la función JavaScript en la parte del <head>, y 2.) Colocar la llamada a la función en los enlaces o elementos que queremos que la activen.

En el ejemplo que yo hice, el truco era el siguiente: creamos una tabla en la que vamos metiendo filas que sean los títulos del contenido que está en las filas de la tabla siguiente (inicialmente ocultas).

En cuanto a tu código, veo que sigues creando el código HTML al mismo tiempo que sucede el escaneo. Habría que poner el código que llama a la función JavaScript en la de scan_started(), haciendo que el 'id' a ocultar o mostrar sea el que vas a usar dentro de las celdas que se crean dentro de port_found(). Pero en tu código es más complicado que el mío: yo meto todos los puertos encontrados en solo UNA celda y a esa celda le doy el 'id' del titular, para que el código JavaScript sepa qué es lo que tiene que mostrar u ocultar.

El querer ocultar "Host description" es el mismo problema: es una celda nueva en una fila nueva.

Una posible solución (para tu caso de que un click() en un elemento oculte/muestre varios elementos) consistiría en que esos elementos tuviesen una serie de 'id' consecutivos, y dentro del código JavaScript, pasarle el primer 'id' y que hiciese un bucle por todos ellos, cambiando su estado.

La forma más sencilla sería meter todos los puertos y el "Host description" bajo solo un elemento (por ejemplo, otra tabla) y que sea el contenedor de ese elemento (la fila que lo contiene), el que tenga el 'id'. Así, la función JavaScript solo tiene que ocultar/mostrar ese elemento.
Mensaje Dom Feb 24, 2008 10:35 am
situ
Perlero Frecuente
Perlero Frecuente
Registrado: 09 Abr 2007
Mensajes: 132
Responder citando

Explorer,

Estoy usando tu código ya que me di cuenta que tiene una mejor performance que el mío.

Ya actualicé el código del post, pero ahora te molesto porque quiero agregar una nueva tabla la cual me indica el tiempo de ejecución pero esta no aparece escondida como la de los puertos, me gustaría que sea igual.

Después tengo otro problema el cual es que al hacerle click a la IP obtengo un "renglón" en blanco y abajo los ports, ¿hay posibilidades que este renglón no este más?, así que queda todo pegado.

Gracias
Mensaje Dom Feb 24, 2008 6:30 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 3889
Ubicación: Valladolid, España
Responder citando

Para esconderla, hay que agregar el style = 'display:none', al Tr() o a la table().

Y en cuanto al renglón, creo que te refieres al br() que está entre las dos tablas. Lo quitas y listo.
Mensaje Dom Feb 24, 2008 9:20 pm
situ
Perlero Frecuente
Perlero Frecuente
Registrado: 09 Abr 2007
Mensajes: 132
Responder citando

Como siempre, un lujo. La verdad que no me había dado cuenta del br :d Muchísimas gracias.
Te molesto nuevamente porque me gustaría implementar dentro del código lo siguiente, pero la verdad que no me estoy dando cuenta de cómo hacerlo, me gustaría que sea igual a los demás, que esté invisible hasta que haga click sobre la IP.
Perl:

sub scan_complete {
my $self = shift;
    my $host = shift;
            print F "  <tr><td bgcolor=#c0c0c0> <font face=Verdana size=1>";
            print F "Host Descripcion:\n<br>";
   for my $match ($host->os()->osmatches()) {
        print F "Host could be of type: " . $match->name(),"\n<br>";
 }
for my $c ($host->os()->osclasses()) {
         print F "-- " . $c->vendor() . "\n<br>";
        print F"- OS generation: " . $c->osgen() . "\n<br>";
        print F"- OS family:     " . $c->osfamily() . "\n<br>";
        print F"- OS Type:       " . $c->type() . "\n<br>";
 }

Acá está el código completo armado con mi script viejo, pero me gustaría adaptar esa parte al nuevo que deje en la primera hoja.
http://pastebin.org/21112

Muchas Gracias
Mensaje Lun Feb 25, 2008 6:25 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 3889
Ubicación: Valladolid, España
Responder citando

A ver...

Para que un elemento (HTML) esté oculto hay que agregarle el estilo ya repetido varias veces: display:none. Si quieres que quede oculto una fila, debes agregar el estilo al <tr>. Si es a la tabla, al <table> (mira el código HTML generado por el cgi).

Para hacer que aparezca y desaparezca hay que hacer varias cosas:
* Disponer de una rutina JavaScript que haga el cambio (esto ya está puesto en el código).
* A esa rutina le tenemos que pasar el nombre ID del elemento que queremos esconder/mostrar.
* Lo anterior implica que, además de agregar el estilo de oculto al elemento, también debemos agregarle el atributo 'id=un-nombre' para que la rutina JavaScript pueda encontrarlo.

En el código que muestras, si quieres ocultar la fila (tr) deberás agregarle los atributos id y style. Y en el id, asegurarte que le das un nombre único (debe existir solo un id por página, distinto a los demás).

En el código nuevo, fíjate que pone
Perl:
id => $_->{addresses}
para mostrar que estamos creando varios ID distintos (en función de la dirección del host). Si miras el código HTML generado, los verás.
Publicar nuevo tema   Responder al tema    Foros de discusión -> Módulos Todas las horas son GMT - 6 Horas
Ir a página Anterior  1, 2, 3, 4
Página 4 de 4



Powered by phpBB © 2001, 2005 phpBB Group