root/scanies/trunk/frmnmap.class @ 516
128 | francis | ' Gambas class file
|
|
' This program IS free software; you can redistribute it AND/OR
|
|||
' modify it under the terms of the GNU General PUBLIC License AS
|
|||
' published by the Free Software Foundation; either version 2 of the
|
|||
' License, OR (at your option) any later version.
|
|||
'
|
|||
' This program IS distributed IN the hope that it will be useful, but
|
|||
' IS provided AS IS, WITHOUT ANY WARRANTY; without even the implied
|
|||
' warranty of MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
|
|||
' NON-INFRINGEMENT. See the GNU General PUBLIC License FOR more details.
|
|||
'
|
|||
' You should READ the GNU General PUBLIC License
|
|||
' IF you have non, WRITE TO the Free Software
|
|||
' Foundation, INC., 59 Temple Place - Suite 330, Boston,
|
|||
' # MA 02111-1307, USA.
|
|||
' ----------------------------------------------------------------------------
|
|||
' ################################################
|
|||
' # file name : frmnmap.class
|
|||
' # created in project : scanies
|
|||
' # created by : Francisco Paniagua Sánchez
|
|||
' # mail : adminies.franciscodeorellana@edu.juntaextremadura.net
|
|||
' # created at : 12/11/2006
|
|||
' # last test with : gambas-2.7-1
|
|||
' ################################################
|
|||
PRIVATE indice AS Integer
|
|||
PUBLIC pasarnombre AS String
|
|||
PRIVATE hset AS Settings
|
|||
PUBLIC SUB iniciar_formulario()
|
|||
DIM fichero AS String
|
|||
btnsalir.picture = Stock["16/quit"]
|
|||
lista.Columns.Count = 2
|
|||
lista.Columns[0].Width = 125
|
|||
lista.Columns[1].Width = 200
|
|||
lista.Columns[0].Text = "Dirección IP"
|
|||
lista.Columns[1].text = "Dispositivo"
|
|||
fichero = User.home & "/.scanies-nmap"
|
|||
IF NOT Exist(fichero) THEN SHELL "touch " & fichero WAIT
|
|||
hset = NEW Settings(fichero)
|
|||
END
|
|||
PUBLIC SUB Form_Open()
|
|||
ME.Center
|
|||
iniciar_formulario()
|
|||
cargar_datos()
|
|||
END
|
|||
PRIVATE FUNCTION obtener_nombre(dato AS String) AS String
|
|||
RETURN hset[dato]
|
|||
END
|
|||
PRIVATE SUB cargar_datos()
|
|||
DIM fichero AS String
|
|||
DIM fdispositivos AS File
|
|||
DIM linea AS String
|
|||
DIM contador AS Integer
|
|||
DIM ip AS String
|
|||
DIM nombre AS String
|
|||
IF (lista.Exist(0)) THEN lista.Clear
|
|||
fichero = "/tmp/encendidos-nmap"
|
|||
contador = 0
|
|||
TRY SHELL "nmap -n -sP " & fprincipal.rango & " | grep appears | cut -f2 -d\" \" > " & fichero WAIT
|
|||
TRY OPEN fichero FOR READ AS #fdispositivos
|
|||
WHILE NOT Eof(fdispositivos)
|
|||
LINE INPUT #fdispositivos, linea
|
|||
nombre = obtener_nombre(linea)
|
|||
IF (nombre = "") THEN nombre = "Dispositivo"
|
|||
lista.Add(contador, linea)
|
|||
lista[contador][1] = nombre
|
|||
contador = contador + 1
|
|||
WEND
|
|||
CLOSE #fdispositivos
|
|||
CATCH
|
|||
Message.Info("Existe algún problema por el cual no se puede ejecutar la aplicación, revisa la configuración")
|
|||
END
|
|||
PUBLIC SUB lista_Click()
|
|||
indice = lista.Current.Key
|
|||
END
|
|||
PUBLIC SUB lista_Menu()
|
|||
'DIM tocado AS Boolean
|
|||
' TRY tocado = LAST.current.selected
|
|||
' IF NOT ERROR THEN
|
|||
mnupopup.Popup
|
|||
' indice = LAST.item.key
|
|||
' ENDIF
|
|||
END
|
|||
PUBLIC SUB mnunombre_Click()
|
|||
pasarnombre = lista[indice][1]
|
|||
frmnombre.pasardireccion = lista[indice][0]
|
|||
frmnombre.ShowModal
|
|||
lista[indice][1] = pasarnombre
|
|||
hset[lista[indice][0]] = pasarnombre
|
|||
hset.Save
|
|||
END
|
|||
PUBLIC SUB mnunavegador_Click()
|
|||
SHELL "firefox " & lista[indice][0] WAIT
|
|||
END
|
|||
PUBLIC SUB mnupdf_Click()
|
|||
DIM fecha AS String
|
|||
DIM fichero AS String
|
|||
DIM ficheropdf AS String
|
|||
DIM x AS Integer
|
|||
DIM y AS Integer
|
|||
DIM yinc1 AS Integer
|
|||
DIM yinc2 AS Integer
|
|||
DIM xinc1 AS Integer
|
|||
DIM xinc2 AS Integer
|
|||
DIM i AS Integer
|
|||
DIM snombre AS String
|
|||
DIM sdireccionip AS String
|
|||
DIM smac AS String
|
|||
DIM npagina AS Integer
|
|||
'generar un fichero con los datos de los equipos
|
|||
fecha = Now() 'Format(Now, "dd-mm-yyyy")
|
|||
fichero = "/tmp/redscanies-report.ps"
|
|||
ficheropdf = User.home & "/Desktop/redscanies-report.pdf"
|
|||
npagina = 1
|
|||
Printer.copies = 1
|
|||
Printer.name = ""
|
|||
Printer.size = "A4"
|
|||
Printer.file = fichero
|
|||
Draw.Begin(printer)
|
|||
Draw.Font.name = "FreeSans"
|
|||
'cabecera *****************************************************************
|
|||
x = 250
|
|||
y = 200
|
|||
Draw.Font.size = 6
|
|||
Draw.Text("Documento generado: " & fecha & " --- Página " & npagina, x + 3250, y - 100)
|
|||
Draw.Font.size = 24
|
|||
Draw.Font.Bold = TRUE
|
|||
Draw.Text("*** Elementos de Red - ScanIES ***", x + 600, y)
|
|||
Draw.Font.size = 10
|
|||
yinc1 = 200
|
|||
xinc1 = 1800
|
|||
xinc2 = 3700
|
|||
y = y + yinc1 + yinc1
|
|||
Draw.Font.size = 16
|
|||
Draw.Text("Nombre", x, y)
|
|||
Draw.Text("Dirección IP", x + xinc2, y)
|
|||
'cuerpo *************************************************************
|
|||
y = y + yinc1
|
|||
yinc2 = 100
|
|||
Draw.Font.size = 10
|
|||
Draw.Font.bold = FALSE
|
|||
FOR i = 0 TO lista.Count
|
|||
IF (lista.Exist(i)) THEN
|
|||
snombre = lista[i][1]
|
|||
sdireccionip = lista[i][0]
|
|||
Draw.Text(snombre, x, y)
|
|||
Draw.Text(sdireccionip, x + xinc2, y)
|
|||
y = y + yinc2
|
|||
IF (y > 6400) THEN 'debemos comenzar una nueva página *******************************
|
|||
'incluimos la cabecera y modificamos el valor de y **********************************
|
|||
printer.NewPage
|
|||
npagina = npagina + 1
|
|||
Draw.Font.size = 6
|
|||
Draw.Text("Documento generado: " & fecha & " --- Página " & npagina, x + 3250, 100)
|
|||
y = 400
|
|||
Draw.Font.size = 16
|
|||
Draw.Font.Bold = TRUE
|
|||
Draw.Text("Nombre", x, y)
|
|||
Draw.Text("Dirección IP", x + xinc2, y)
|
|||
Draw.Font.size = 10
|
|||
Draw.Font.bold = FALSE
|
|||
y = y + yinc1
|
|||
ENDIF
|
|||
ENDIF
|
|||
NEXT
|
|||
Draw.End
|
|||
'convertimos el fichero ps a pdf
|
|||
SHELL "ps2pdf " & fichero & " " & ficheropdf WAIT
|
|||
Message.Info("Fichero generado en el escritorio")
|
|||
END
|
|||
PUBLIC SUB btnsalir_Click()
|
|||
ME.Close
|
|||
END
|