UNIVERSIDAD DE GUAYAQUIL
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
“VscanNet” Visualización y Escaneo de Red
PROYECTO DE GRADO
Previo a la Obtención del Título de:
INGENIERO EN SISTEMAS COMPUTACIONALES
Autor(es):
Glenda Del Rocío Tapia Parada
Danilo Calle Fierro
Betty América Villacres
GUAYAQUIL-ECUADOR
Año: 2004 - 2005
II
AGRADECIMIENTO.
Agradezco a Dios por
todas sus bendiciones a
mis padres por su apoyo
y ayuda incondicional,
como también a todas
las personas que de uno
u otro modo colaboraron
en la realización de este
trabajo y especialmente
al Ing. Carlos Carranza
por su invaluable ayuda.
Glenda Tapia Parada
III
AGRADECIMIENTO.
Agradezco de manera
cordial al Ing. Carlos
Carranza, que con su
sabiduría y experiencia
nos orientó de manera
muy acertada a la
culminación de este
proyecto.
Danilo Calle Fierro
IV
DEDICATORIA.
Dedico este Trabajo a
Mis Padres, a mi Hija y
Hermanas, quienes
siempre estuvieron
conmigo brindándome
su apoyo de una forma
incondicional.
Glenda Tapia Parada
V
DEDICATORIA.
Dedico el desarrollo y
culminación de este
proyecto a Dios. A mis
padres y hermanas que
han sido fuentes de
inspiración y me
ayudaron a seguir
adelante.
Danilo Calle Fierro
VI
TRIBUNAL DE GRADUACIÓN
Ing. Abel Alarcón
Presidente CCG
Ing. Carlos Carranza P. Ing. José Luis Peralta
Profesor / Vocal Profesor / Vocal
Ab. Juan Chavez Atocha
Secretario
VII
DECLARACIÓN EXPRESA
“La autoría de la tesis de grado corresponde exclusivamente al suscrito(s),
perteneciendo a la Universidad de Guayaquil los derechos que generan la
aplicación de la misma”
(Reglamento de Graduación de la Carrera de Ingeniería en Sistemas
Computacionales, Art. 26)
RESUMEN
VscanNet (Sistema de Visualización y Escaneo de Red) fue creado para
permitir los usuarios administradores de red poder visualizar el esquema
lógico de las redes que administran; para de esta forma facilitar la tarea de
monitorear la red dado a que nuestra aplicación también permite conocer la
información de cada elemento de la red(NODO-PC’S) como también su
estado operacional.
Esta aplicación facilita el control a través de funciones sencillas que
permiten monitorear una red cuya infraestructura se basa en la arquitectura
TCP/IP.
IX
INDICE GENERAL
AGRADECIMIENTO II
DEDICATORIA III
TRIBUNAL DE GRADUACIÓN IV
DECLARACIÓN EXPRESA V
RESUMEN VI
INDICE GENERAL VII
CAPITULO 1 1
INTRODUCCIÓN
1. Antecedentes 1
1.2. Problema 3
1.2.1 Causas y Consecuencias Del Problema Identificado 3
1.2.2.- Árbol de Problemas 4
1.3.- Solución del Problema 5
1.4. -Definición del Proyecto 5
X
1.5.- Determinación de los Objetivos 6
Objetivo Global 6
Objetivos específicos 6
1.5.1.- Árbol de Objetivos 7
1.6.- Alcance del Proyecto 8
1.7. -Beneficios del Proyecto 9
1.8.- Cronograma 9
1.9.- Recursos necesarios para el proyecto 10
1.9.1.- Recursos estimables de hardware 10
1.9.2.- Recursos estimables de software 11
1.9.3. Recurso Humano 13
1.10.- Metodología del Proyecto 13
1.10.1.- Metodología del Análisis 13
1.10.2.- Metodología del Diseño 14
XI
CAPITULO 2 15
ANÁLISIS
2.1.- Levantamiento de Información 15
2.2.- Análisis de Requerimientos 19
2.2.1.- Escaneo de la Red 19
2.2.2.- Visualización de la Red 19
2.2.3. Presentación de la Información 20
2.2.4. Reportes 21
2.2.5. Alertas 21
2.3.-Diccionario de Datos 22
2.4.- Diagrama Entidad Relación (DER) 24
2.4.1.- Especificación de objetos 26
2.5.- Diagrama Flujo de Datos (DFD) 31
2.5.1.- Especificación de procesos 32
XII
VScanNet Administrador 32
VScanNet Descubridor 33
VScanNet Agente 33
VScanNet Servidor 34
CAPITULO 3 36
DISEÑO
3.- Diseño de Datos 36
3.1.A.- Tablas Principales 37
3.1.1.- El grupo Usuarios 37
3.1.2.- El grupo Redes 39
3.1.3.- Configuración Inicial 39
XIII
3.1.4.- Configuración Actual 40
3.1.B.- Tablas Temporales 46
3.1.1.- Configuración de Redes 47
3.1.2.-Configuración de Nodos 47
3.2.- Diseño Arquitectónico 48
3.2.1.- VscanNet Administrador 49
3.2.1.1.-Ingreso al Sistema 50
3.2.1.2.- Envío de Datos al Descubridor 50
3.2.1.3.- Graficar Red 51
3.2.1.3.1.- Mapa Configuración Inicial 53
3.2.1.3.2.- Mapa de Red – Actual 53
3.2.1.3.3.- Mapa de Red Histórico 54
3.2.1.- VscanNet Administrador 49
3.2.2.- VscanNet Servidor 54
XIV
3.2.3.- VscanNet Descubridor 58
3.2.4.- VscanNet Agente 63
3.3.- Diseño de Interfaz 71
3.3.1.- Acceso al Sistema 71
3.3.2.- Inicio de Sesión 72
3.3.3.- Pantalla Principal 73
3.3.4.- Ventanas de mensajes 76
3.3.4.1.- Mensajes de Advertencia 76
3.3.4.2.- Mensajes de opción 77
3.3.4.3.- Mensajes de Error 78
3.3.4.4.- Mensajes de Información 78
3.3.5.- Opciones de Menú 79
3.3.5.1.- Descubrimiento 79
3.3.6.A.- Mapas de Red 80
XV
3.3.6.1.-Configuración Inicial 80
3.3.6.B.-Mapas de red 81
3.3.6.1.-Gráfica de Red 81
3.3.6.2.- Propiedades del Nodo 83
3.3.7.-Herramientas 84
3.3.7.1.-Cmd 84
3.3.7.2.-Ping 85
3.3.7.3.-Reportes 86
3.3.7.3.1.- Visualizar por pantalla 87
3.3.7.3.2.- Impresora 88
3.3.8.- Usuarios 89
3.3.8.1.- Mantenimiento de usuarios 89
3.3.8.2.- Buscar Usuario 90
3.3.8.3.- Cambio de contraseña 91
XVI
3.3.9.- Ayuda 92
3.3.9.1.- Temas de Ayuda 92
3.3.9.2.- Acerca De 93
3.4.- Diseño de Componentes 94
CAPITULO 4 96
DESARROLLO Y PRUEBA DEL SISTEMA
4.1 Desarrollo del Sistema 96
4.1.1. Creación de la base de datos 96
4.2. Seguridades 99
Sistema Operativo 99
Base de Datos 100
Seguridad del Sistema 100
4.3. Pruebas del Sistema 101
XVII
4.3.1.-Modelo de Prueba 101
4.3.2.- Prueba de Interfaz 102
CAPITULO 5 108
IMPLEMENTACIÓN DEL SISTEMA
5.1. Elementos Físicos 108
5.2. Elementos lógicos 109
5.3. Elementos Humanos 110
5.3.1.-Desarrolladores del sistema 110
5.3.2.-Usuarios del sistema 111
CAPITULO 6 109
RECOMENDACIONES Y CONCLUSIONES DE LA TESIS
6.1.-Recomendaciones 112
XVIII
6.1.1.-Hardware 112
6.1.2.- Software 113
6.1.3.- Cableado(Conexiones de Red) 114
6.1.4.- Puesta en Marcha 114
6.1.5.- Seguridades 115
6.2. CONCLUSIONES 116
6.2.1.-Por Glenda Del Rocío Tapia Parada 116
6.2.2.-Por Betty América Villacrés 117
6.2.3.-Por Danilo Calle Fierro 118
ANEXO 119
Referencias Bibliográficas 119
XIX
INDICE DE FIGURAS
CAPITULO 2 15
ANÁLISIS
Figura 2.1: Visualización de la Red 20
Figura 2.2: Diagrama Entidad Relación 25
Figura 2.3: Especificación de Objetos 26
Figura 2.4: Tabla Usuario 27
Figura 2.5: Tabla Información Inicial 27
Figura 2.6: Tabla Información Nodo 28
Figura 2.7: Tabla Información Unidades De Disco 28
Figura 2.8: Tabla Información Procesador 29
Figura 2.9: Tabla Información Paquetes 29
XX
Figura 2.10: Tabla Información Sistemas Operativos 30
Figura 2.11: Tabla Información Interfaces de Red 30
Figura 2.12: Diagrama Flujo de Datos 31
CAPITULO 3 36
DISEÑO
Figura 3.1: Tablas Principales 36
Figura. 3.2: Tablas Temporales 37
Figura 3.3: PIR 66
Figura a3.4: Detalle Paquete PIR 69
Figura 3.5: Presentación del Sistema 71
Figura 3.6: Inicio de Sesión 72
Figura 3.7: Pantalla Principal 75
Figura 3.8: Ventanas de Mensajes – Advertencia 76
XXI
Figura 3.9: Ventanas de Mensajes – Opción 77
Figura 3.10: Ventanas de Mensajes – Error 77
Figura 3.11: Ventanas de Mensajes – Información 78
Figura 3.12: Descubrimiento 79
Figura 3.13: Descubrimiento(mensaje) 79
Figura 3.14: Mapas de Red: Configuración Inicial 81
Figura 3.15: Mapas de Red: Gráfica de Red 83
Figura 3.16: Mapas de Red: Propiedades 84
Figura 3.17: Herramientas: Cmd 85
Figura 3.18: Herramientas: Ping 86
Figura 3.19: Herramientas: Reportes – Pantalla 87
Figura 3.20: Herramientas: Reportes: Imprimir 88
Figura 3.21 : Usuarios – Mantenimiento de Usuarios 89
Figura 3.22 : Usuarios – Mantenimiento de Usuarios – Buscar 90
XXII
Figura 3.23 : Usuarios – Cambio de Contraseña 91
Figura 3.24: Ayuda / Temas de Ayuda 92
Figura 3.25: Ayuda / Acerca De 93
Pág. 1
CAPITULO 1
INTRODUCCIÓN
1.- Antecedentes
Con la creación de las redes de computadoras, el compartir información y el
uso de los servicios que brindan las redes permite una mejora en el
desempeño de las actividades tanto de los usuarios como de las empresas,
pues se coordina esfuerzos a cortas y grandes distancias.
Actualmente en nuestro entorno existen empresas que basan sus negocios en
la velocidad y la calidad de los procesos que se ejecutan en los equipos que
poseen; por ende nace la necesidad de contar con una aplicación que facilite la
visualización gráfica y el control del estado de operación de los equipos con
que cuentan. Asimismo resulta prioritario el poder estar un paso adelante para
poder evitar inconvenientes, pérdidas de tiempo y el poder realizar un manejo
más inteligente de sus recursos de infraestructura.
Pág. 2
Motivo por el cual la aplicación que a continuación se describe plantea brindar
una solución que facilite el control y que a través de un mecanismo flexible y
sencillo permita el monitoreo de la red con que cuenta una empresa cuya
infraestructura se encuentre dentro de un entorno de red basado en la
arquitectura TCP/IP.
De esta forma se podrán atacar la ineficiencia e inconvenientes que conllevan
modelos de administración de redes segmentadas y poco proactivos. Donde
los beneficiarios directos serían los grupos de usuarios o administradores y por
ende los Gerentes de IT.
A veces para poder visualizar el estado de un equipo de una red es necesario
estar físicamente en el, para después ejecutar una serie de comandos y/o
aplicaciones propias del sistema operativo que muestren el rendimiento del
mismo.
La información que se obtiene como resultado de la metodología antes descrita
es importante pero no suficiente sobre todo en el ámbito visual. Más aún si lo
que se desea es poder conocer el estado operacional e información de un nodo
de la red u obtener una visualización general de la misma, para de esta forma
optimizar el tiempo y los recursos con los que cuenta una red.
Pág. 3
1.2.- Problema
1.2.1 Causas y Consecuencias Del Problema Identificado
El no contar con el acceso a toda la información de la infraestructura lógica
de la red de una manera visual, simple y detallada.
El no tener una interfaz amigable que muestre la información de la
infraestructura de la red.
Estos dos puntos anteriores traen como consecuencia en muchas ocasiones
pérdidas de tiempo en poder realizar un diagnóstico rápido de toda la red.
El que en ocasiones se necesite de la ejecución de comandos y/o aplicaciones
para poder obtener información referente al estado de un nodo; dificulta el
poder controlar los recursos con que cuenta la red así como el poder realizar
un rápida detección y lecturas de problemas.
Pág. 4
1.2.2.- Árbol de Problemas
C A U S A
S
E F E C T O
S
Falta de optimización de los activos
existentes
Decremento en la
eficiencia
Pérdida de la inversión
Decremento en la
productividad
PÉRDIDA DE TIEMPO
FALTA DE AUTOMATIZACION
No contar con una interfaz gráfica
amigable
Complicado acceso a la información de
la red
Estar físicamente en el equipo para
ejecutar comandos y / o aplicaciones
Pág. 5
1.3.- Solución del Problema
Dadas las causas anteriormente descritas surge la necesidad de crear una
aplicación que facilite la gestión del administrador de la red mediante la
visualización general de toda la infraestructura de la red de manera lógica.
Solución que facilitará el control de los recursos con que cuenta la red, donde
se podrá tener acceso a la información de cada nodo de la red de una manera
más rápida y eficiente.
1.4. -Definición del Proyecto
De esta forma se presenta una solución que permite visualizar la red luego de
efectuar un descubrimiento en un nivel lógico(Direcciones IP) de la misma. A
esta aplicación la denominaremos:
VscanNet (Sistema de Escaneo y Visualización de la Red)
Como funciones principales de este programa tenemos las siguientes:
Escaneo de la red -> Descubrimiento de la Red
Visualización de la red:
Mapa Lógico de la red
Mapa Configuración Inicial Mapa Actual Mapa Histórico
Pág. 6
Presentación información de un Nodo
Alertas
Reportes
1.5.- Determinación de los Objetivos
Objetivo Global
Desarrollo de una aplicación con el fin de aportar una solución que pueda
competir en condiciones de ventaja en el mercado, donde el diseño de sus
funciones se basaran en mejorar el CONTROL de la red.
Objetivos específicos
Evitar pérdidas de tiempo
Lograr un manejo más inteligente de los recursos de infraestructura de red.
Pág. 7
1.5.1.- Árbol de Objetivos
Visión más integral detallada y sencilla
de la infraestructura de
red
Toma De decisiones más acertadas debido a inf. de los activos de
red
Mayor eficiencia /mejor interacción entre
personal e infraestructura
Mejor acceso y control
a los recursos de red
Incremento en la
productividad
Fácil Acceso a información de la
red sin previa personalización
CONTROL
Pág. 8
1.6.- Alcance del Proyecto
1.6.1. El desarrollo de VscanNet está orientado a un entorno netamente
Windows(clientes y administradores).
El diseño de VscanNet se basa en la información que un Cliente Windows
envía al servidor.
1.6.2. VscanNet se implementará dentro de un entorno de red basado solo en
arquitectura TCP/IP.
El sistema se ha desarrollado orientado a las capas 2 Capa de Red y 3 Capa
de Enlace del modelo TCP/IP
1.6.3. VscanNet sólo podrá trabajar en redes que tengan direcciones IP
versión 4(IPV4)
Por ser la versión más común y conocida en la actualidad como también la más
usada en algunas empresas.
1.6.4. VscanNet no especificará la topología que tenga una red al momento de
graficarla; no considerará si es una red Token Ring, Anillo, Estrella, etc.
Para el sistema será indiferente la misma.
El diseño de la opción donde el sistema grafica a la red, se estandarizó a una
sola topología; a la Ethernet considerando que lo más relevante para el
usuario es el conocer como está dividida lógicamente su red(Direcciones IP) y
no ver el enlace físico como tal.
Pág. 9
1.7. -Beneficios del Proyecto
Permitir una visión más integral, detallada y sencilla de la infraestructura de
red.
Acceso inmediato a la información de la red sin previa personalización
Mejorar el acceso y control a los recursos de la red
Mayor eficiencia, mejor interacción entre el personal y la infraestructura
Toma de decisiones más acertada, debido a la presentación de la
información de los activos de la red.
1.8.- Cronograma
Ver Anexo
Pág. 10
1.9.- Recursos necesarios para el proyecto
1.9.1.- Recursos estimables de hardware
Para la realización del proyecto se cuenta con los equipos:
HP Notebook PC Pavilion n5000
Procesador Intel Pentium III 850 Mhz
128 Mb de RAM
Disco duro: 20 Gb
PC Pentium IV
Procesador Intel Pentium IV 2.4
256 Mb de RAM
Disco Duro: 80 Gb
PC Pentium III
Procesador ADM 1.00 GHZ
376 Mb de RAM
Disco Duro: 80 Gb
Pág. 11
PC Pentium IV
Procesador Intel Pentium IV 2.8 Ghz
256 Mb de RAM
Disco Duro: 80 Gb
1.9.2.- Recursos estimables de software
Se ha estimado que el sistema se desarrollará bajo una plataforma de :
Sistema Operativo:
Windows NT
Windows XP Professional
Windows 98 SE
Lenguajes de programación:
Visual Basic 6.0:
Desarrollo de la interfaz gráfica de la aplicación (Administrador
VscanNet)
Desarrollo del Cliente VscanNet (Agente VscanNet)
Java: Desarrollo del Servidor VscanNet
Pág. 12
Base de datos:
SQL Server 2000
Extras
Icon Lover: Diseño de iconos
Icon Search: Obtención de iconos
Robohelp5X: Creación de ayuda del sistema
Cristal Report 5.0: Reportes VscanNet
Create Install Trial V2003.3.5 (Demo 30 días): Creación de Instalador del
Agente de la Red.
API’s de Windows
Pág. 13
1.9.3. Recurso Humano
El desarrollo del sistema VscanNet está a cargo de las siguientes personas:
Glenda Tapia Parada: Desarrollo de Interfaz VScanNet
Danilo Calle Fierro: Desarrollo del Cliente VscanNet
Betty Villacrés: Desarrollo del Servidos VscanNet
1.10.- Metodología del Proyecto
1.10.1.- Metodología del Análisis
El desarrollo de esta aplicación se ha definido mediante una metodología de
Análisis Clásico, establecido de la siguiente forma:
Levantamiento de información: Se ha realizado un levantamiento de
información investigativo. Como recursos se ha requerido el uso del
Internet casi en su totalidad, como también se a recurrido a textos y
manuales.
Diccionario de Datos (DD): Donde se definen las características de
cada elemento principal del sistema, como cada campo de la base de datos
del sistema.
Pág. 14
Diagrama Entidad Relación (DER): Donde se representa las relaciones
entre los objetos de datos.
Diagrama Flujo de Datos (DFD): Para representar como se transfieren
los datos a medida de que se avanza en el sistema.
1.10.2.- Metodología del Diseño
El desarrollo de esta aplicación se ha definido mediante una metodología de
Diseño Clásico conformado por los siguientes módulos:
Diseño Arquitectónico: Definición de la arquitectura de todo el sistema
VscanNet, orientado al flujo de datos del mismo
Diseño de Interfaz: Definición de cada una de las pantallas que
conforman la interfaz del sistema.
Pág. 15
CAPITULO 2
ANÁLISIS
2.1.- Levantamiento de Información
Se realizó un levantamiento de información Investigativo. Para la tarea de
investigación y recopilación de información se ha tomado referencia
básicamente de los siguientes medios: Textos e Internet.
Entre los temas en que se basó nuestra investigación se pueden citar:
Protocolos SNMP e ICMP, IP, TCP, UDP, análisis de tráfico de red, monitoreo
de redes, escaneo de puertos y redes, como capturar paquetes IP, entre otros
temas.
Pág. 16
Como referencia a continuación se detallan algunas direcciones de donde se
ha obtenido esta información, como también el nombre de los textos:
Textos:
TCP/IP Dr. Sidnie Feit
Osborne McGraw-Hill
Ingeniería del Software – Un Enfoque Práctico
Roger s. Pressman
Links
www.arrakis.es/~tobal/snmp.htm
www.net-snmp.org/tutorial
http://elqui.dcsc.utfsm.cl/
http://es.tldp.org/Articulos-periodisticos/jfs/snmp/snmp.html
http://tiburon.dit.upm.es/devel-doc/isabel/doc/devel/monitor/monitor.html
http://www2.rad.com/networks/1995/snmp/snmp.htm
Pág. 17
http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/snmp.htm
http://publib.boulder.ibm.com/tividd/td/ITMBI/SC32-1403-
00/es_ES/HTML/BI52UGmst272.htm
http://www.arrakis.es/~terron/tcpdump.html
http://www.sun-microsystems.org/Tecnicas_de_Deteccion/x300.html
http://webmaster.bankhacker.com/monitorizacion/mrtg.phtml
http://www.adremsoft.com
http://www.coit.es/publicac/publbit/bit102/quees.htm
http://www.linux.org.pe/pipermail/linux-dev
http://www.arrakis.es/~gepetto/redes/rog08p3.html
http://www.arrakis.es/~gepetto/redes/rog08p6.html
informatica.uv.es/iiguia/2000/R/snmp.ppt
es.tldp.org/Articulos-periodisticos/jfs/snmp/snmp.htm
http://www-gist.det.uvigo.es/~jrial
http://www.dll-files.com/dllindex/dll-files.shtml
Pág. 18
http://www.solocursosgratis.com/curso_gratis_manual_de_api's_win32_en_visu
al_basic-slccurso590903.htm
http://www.lawebdelprogramador.com/cursos/mostrar.php?id=93&texto=Visual+
Basic
http://programacion.com/foros/32/msg/61924/
http://www.elguruprogramador.com.ar/libreria_de_codigo/vb.asp
http://www.trucostecnicos.com/directorio/categoria.php?id=7&cat=Visual%20Ba
sic
http://www.abcdatos.com/tutoriales/programacion/visualbasic/genericos.html
http://www.elguille.info/vb/vb_resumen.htm
www.abcdatos.com/programas/ programacion/visualbasic.html
www.templobinario.com/codfuente/index.php
www.programacion.net/direcciones/visualbasic
www.lawebdelprogramador.com/codigo/
http://programatium.com/vb/
Pág. 19
2.2.- Análisis de Requerimientos
A fin de poder facilitar la tarea de monitorear la red mediante el uso de una
herramienta que permita conocer el esquema lógico de la misma en una forma
visual. A continuación se detallan cada una de las opciones que VscanNet
ofrece para poder cumplir esta tarea:
2.2.1.- Escaneo de la Red
Esta función permitirá descubrir todas las direcciones IP de la red. Para ello se
desarrollará un programa cliente el cual será residente y se instalará en cada
una de las estaciones de trabajo de la misma.
Este programa se ejecutará de tal forma en que los usuarios no lo puedan
alterar.
2.2.2.- Visualización de la Red
Luego de que se han descubierto todas las direcciones IP de la red, VscanNet
ofrece la opción de visualizar en forma gráfica el “Mapa Lógico de la red”; el
cual básicamente mostrará a la estación de trabajo con la dirección IP que le
corresponde.
Pág. 20
Figura 2.1: Visualización de la Red
192.168.2.3
192.168.2.1
192.168.2.5
2.2.3. Presentación de la Información
VscanNet tendrá la capacidad de indicar al Usuario Administrador la
información del nodo activo de la red mediante un clic derecho en el mismo.
Esta información contendrá:
Información del sistema
Nombre del Nodo: Nombre del PC
Estado operacional:
Nombre_PC
Disco Duro: Cap. Total Cap. Utilizada
Capacidad de Memoria
Sistema Operativo
Procesador
Entre otros
Pág. 21
Host Up (Conectado)
Host Down (No Conectado)
2.2.4. Reportes
La información que se presentará considerará las propiedades de cada nodo
de la red; como también permitirá al usuario el poder contar con todo el
esquema lógico de la red fácilmente.
Así se brindará la posibilidad de realizar estudios de posibles problemas en los
equipos y de esta forma estar un paso delante de una situación problemática.
Estos reportes podrán ser manejados de dos formas:
Se los podrá visualizar por pantalla
Se los podrá imprimir directamente.
2.2.5. Alertas
Una vez detectado un problema en algún dispositivo, se enviará un mensaje al
escritorio del administrador.
Entre los eventos que se considerarán ser notificados tenemos:
Host disponible /no disponible
Capacidad de disco duro crítica
Memoria Insuficiente
Normal Nuevo Alerta
Pág. 22
2.3.-Diccionario de Datos
A continuación se detalla algunos de los elementos esenciales de nuestra
aplicación:
Descripción: Un nodo es el nombre que se le da a un punto de conexión en una red. Puede representar a una Pc, un router, una impresora, etc. Para nuestra aplicación un nodo va representar a una PC.
Nombre: NODO
Tipo: Elemento Físico Fuente: La Red
Descripción: Un paquete es la forma en que se transmite la información a través de la red.
Nombre: PAQUETE
Tipo: Elemento de Datos Fuente: Nodo
Pág. 23
Descripción: Protocolo de Identificación de Requerimientos
Protocolo diseñado por los desarrolladores de VscanNet para
gestionar la información de los nodos en una red y enviarla al
servidor.
Nombre: PIR
Tipo: Protocolo Fuente: Agente - Administrador
Descripción:
Es el nombre que se le da al programa que está corriendo en un
nodo de la red, de esta forma un agente representa las PC‟s en
las que esté instalado y que forman parte de la red.
Nombre: AGENTE
Tipo: Software Fuente: La Red
Pág. 24
2.4.- Diagrama Entidad Relación (DER)
De acuerdo a la metodología de Análisis y diseño utilizada en el desarrollo de
nuestra aplicación, se han creado las siguientes tablas que contendrán toda la
información que nuestro sistema controlará:
Nombre de Tabla Especificación
USUARIO
Almacenamiento de la información de los usuarios que
tendrán acceso al sistema VscanNet. Por ejemplo:
Nombres, conntraseña, turnos, etc.
NODO Información de cada nodo de la red. Por ejemplo:
Dirección IP, Máscara, Dirección de Red, etc.
INF_INICIAL
Almacenará la información obtenida al realizar el
descubrimiento de toda la red.
PROC_EJEC Información de cada proceso que se esté ejecutando en
un nodo. Por ejemplo: Word, Excel, etc.
INF_PROCESS Almacenará el nombre del procesador y el porcentaje
ocupado
INTERFACES_RED Información referente al tipo de tarjeta de red y su
dirección física.
INF_UNIDADES_HD
Información referente al o los discos duros. Almacenará
el volumen del disco, la serie, el tamaño total y el tamaño
ocupado.
INF_MEMORIA
Almacenará la información de la memoria del pc,
Memoria física total y disponible; memoria virtual total y
disponible, memoria cargada.
INF_SO Información del Sistema operativo de cada PC, como el
nombre del SO, la versión y el usuario del SO.
Pág. 25
Figura 2.2: Diagrama Entidad Relación
USUARIO
INF_INICIAL
INTERFACES_RED
INF_PROCESS
INF_UNIDADES_HD
INF_MEMORIA
NODO
PROC_EJEC
INF_SO
Pág. 26
2.4.1.- Especificación de objetos
Figura 2.3: Especificación de Objetos
Pág. 27
Figura 2.4: Tabla Usuario
Figura 2.5: Tabla Información Inicial
Pág. 28
Figura 2.6: Tabla Información Nodo
Figura 2.7: Tabla Información Unidades De Disco Duro
Pág. 29
Figura 2.8: Tabla Información Procesador
Figura 2.9: Tabla Información Paquetes
Pág. 30
Figura 2.10: Tabla Información Sistemas Operativos
Figura 2.11: Tabla Información Interfaces de Red
Pág. 31
2.5.- Diagrama Flujo de Datos (DFD)
Figura 2.12: Diagrama Flujo de Datos
Pág. 32
2.5.1.- Especificación de procesos
VScanNet Administrador
Objetivo:
Permite al usuario visualizar la red en un esquema lógico. Este módulo es el
encargado de realizar la gráfica(Mapas de red).
Descripción:
La visualización de la red se basa en la información que se encuentra
almacenada en la base de datos. Esta tarea esta a cargo de los módulos
descubridor y servidor del sistema.
VScanNet Descubridor
Objetivo:
Descubrir todas las direcciones IP de una red, para así formar el esquema
lógico de la misma.
Descripción:
Para poder iniciar el descubrimiento el usuario a través del VScanNet
administrador envía a este módulo las direcciones de red que desea descubrir
con sus máscaras respectivas.
Pág. 33
Luego por medio de un broadcast que realiza a la red empezará a descubrir
todas las direcciones IP de la misma. Una vez terminado este proceso, como
segundo paso grabará la información en la base de datos
VScanNet Agente
Objetivo:
Enviar la información del nodo de la red(PC)al servidor.
Descripción:
El Agente enviará toda la información de la PC donde esté instalado al servidor
a través del paquete “PIR” cada minuto.
El Agente estará instalado en cada una de las máquinas de la res y se activará
cada vez que se enciendan estas y estarán ejecutándose hasta que se
apaguen.
Pág. 34
VScanNet Servidor
Objetivo:
Administrar la información que recibe de cada uno de los agentes de la red y
almacenarla en la base de datos.
Descripción:
El servidor realiza los siguientes procesos antes de almacenar la información a
la base de datos:
Analizar la dirección IP recibida para poder definir la dirección de red a la que
pertenecen. Para ello obtiene la dirección IP y la máscara que han sido
enviadas mediante el paquete PIR desde el AGENTE; luego mediante una
operación lógica determinará a que red pertenece.
Una vez obtenida la dirección de red, procederá a organizar todas las
direcciones IP recibidas de acuerdo a la red a la que pertenecen. De esta
forma se tendrá el siguiente esquema:
Dirección de Red Direcciones IP Máscara
Después de tener todas las direcciones IP organizadas de acuerdo a la red a la
que pertenecen, el siguiente paso es el de almacenar toda esta información a
la base de datos.
Pág. 35
La información que se almacenará a parte del esquema especificado
anteriormente, será todas las características definidas en el paquete RIN.
Pág. 36
CAPITULO 3
DISEÑO
3.- Diseño de Datos
La base de datos que usa la aplicación VScanNet se basa en 10 tablas
principales y 9 tablas temporales usadas para los reportes. Las 19 tablas son
las siguientes:
INF_INICIAL
INF_MEMORIA
INF_PROCESS
INF_SO
INF_UNIDADES_HD
INTERFACES_RED
NODO
PAQUETES
PROC_EJEC
USUARIO
Fig. 3.1: Tablas Principales
Pág. 37
3.1.A.- Tablas Principales
Las tablas principales se pueden agrupar en dos grupos: el grupo usuarios y
el grupo redes.
3.1.1.- El grupo Usuarios
El grupo usuarios corresponde a la tabla USUARIO. Esta guarda los datos
principales de un usuario que necesite ingresar al sistema. Los campos de
esta tabla son:
Usuario.- Contiene el identificador del usuario, también llamado
nombre de usuario
TMP_INF_INICIAL
TMP_INF_MEMORIA
TMP_INF_PROCESS
TMP_INF_SO
TMP_INF_UNIDADES_HD
TMP_INTERFACES_RED
TMP_NODO
TMP_PAQUETES
TMP_PROC_EJ
Fig. 3.2: Tablas Temporales
Pág. 38
Cedula.- Guarda el número de cédula del usuario
Contraseña.- Ésta almacena la clave o contraseña del usuario. Cabe
recalcar que esta información se almacena encriptada
Ini_Turno y Fin_Turno.- Contienen el rango de horas en las cuales el
usuario puede ingresar a la aplicación
Nombres.- Guarda los nombres del usuario
Apellidos.- Guarda los apellidos del usuario
Telefono.- Almacena el número telefónico del usuario
Status.- Muestra si el usuario es Administrador (estado „S‟) o no
(estado „N‟)
La clave de esta tabla es el campo Usuario, ya que el mismo debe ser único
en la aplicación.
Pág. 39
3.1.2.- El grupo Redes
El grupo Redes, a su vez se divide en dos esquemas principales. El esquema
de configuración inicial, que corresponde a la tabla INF_INICIAL y el
esquema de configuración actual.
3.1.3.- Configuración Inicial
Muestra información de las subredes y sus nodos. Esta información se
encuentra solamente en la tabla INF_INICIAL. Los campos de esta tabla son
los siguientes:
Dir_Ip.- Almacena la dirección IP de los nodos de una subred
Dir_Red.- Guarda la dirección IP de la subred específica
Mascara.- Almacena la máscara de subred de cada nodo
Id_Histo.- Este campo es un contador del número de veces que se
realiza el descubrimiento de la red por parte del administrador
La clave de esta tabla son los campos Dir_Ip e Id_Histo ya que la
combinación de éstos no debe repetirse nunca.
Pág. 40
3.1.4.- Configuración Actual
Muestra información de los nodos dada una fecha específica. Las tablas de
esta configuración se basan en el esquema entidad relación. La entidad
principal es la tabla NODO, la cual contiene la información principal del nodo
que va a ser única por cada uno de éstos. Las entidades “hijas”, están
relacionadas a la entidad principal mediante el campo Id_Nodo, y contienen
la información que puede o no ser múltiple por cada nodo. Estas entidades
corresponden a las tablas: INF_MEMORIA, INF_PROCESS, INF_SO,
INF_UNIDADES_HD, INTERFACES_RED, PAQUETES, PROC_EJEC.
Los campos de la tabla NODO son:
Id_Nodo.- Un campo autoincremental que guarda la identificación de
un nodo en una fecha y hora específica
Dir_Ip.- Almacena la dirección IP del nodo
Dir_Red.- Guarda la dirección de red respectiva
Mascara.- Máscara de red del nodo
Nombre.- Almacena el nombre del nodo
Clase.- La clase de la red que contiene al nodo
Pág. 41
Gateway.- Contiene la dirección IP del Gateway de la red
Estado.- Un campo que muestra si la PC tiene una especie de alerta o
no
Id_Histo.- El contador del número de veces que se realiza el
descubrimiento de la red por parte del administrador. También
presente en la tabla de configuración inicial
Fecha y Hora.- Almacena la fecha y hora en que se guardó la
información de ese nodo en la tabla
El campo clave de esta tabla es, por supuesto, el Id_Nodo.
Pág. 42
La tabla INF_MEMORIA, almacena información de la memoria de la PC.
Los campos de esta tabla son:
Id_Nodo.- Identificador del nodo y relación con la tabla de los nodos
Mem_Fis_Tot.- Contiene el tamaño total de la memoria física
Mem_Fis_Disp.- Contiene el tamaño disponible de la memoria física
Mem_Vir_Tot.- Contiene el tamaño total de la memoria virtual
Mem_Vir_Disp.- Contiene el tamaño disponible de la memoria virtual
Mem_Cargada.- Contiene el tamaño de la memoria cargada
La tabla INF_PROCESS almacena información del o los procesadores del
PC. Los campos de la tabla son:
Id_Nodo.- Identificador del nodo y relación con la tabla de los nodos
Nombre.- Guara el nombre del procesador
Pág. 43
Porcentaje_Ocupado.- Almacena el porcentaje de uso del
procesador
La tabla INF_SO almacena información de los sistemas operativos de
cada máquina. Los campos de la tabla son:
Id_Nodo.- Identificador del nodo y relación con la tabla de los nodos
Nombre.- Nombres de los sistemas operativos con que cuenta la
máquina
Version.- Almacena la versión del sistema operativo
Usuario.- Nombre del usuario que esta ingresado en el sistema
operativo respectivo
Pág. 44
La tabla INF_UNIDADES_HD almacena información acerca de los discos
duros de cada nodo. Los campos de la tabla son:
Id_Nodo.- Identificador del nodo y relación con la tabla de los nodos
Volumen.- Almacena la unidad lógica del disco
Serie.- Almacena la serie del disco
Tamano_Total.- Contiene el tamaño total de la capacidad del disco
Tamano_Disponible.- Contiene el tamaño disponible del disco
La tabla INTERFACES_RED contiene información de las tarjetas o
interfaces de red que contiene cada PC. Los campos de esta tabla son:
Id_Nodo.- Identificador del nodo y relación con la tabla de los nodos
Descripción.- Guarda la descripción de la interfase
Direccion_Fisica.- Almacena la dirección física de la tarjeta
Paq_Recibidos.- Guarda el número de paquetes recibidos
Pág. 45
Paq_Perdidos.- Guarda el número de paquetes perdidos
Nombre_Enlace.- Almacena el nombre del enlace de red
Velocidad_Enlace.- Contiene la velocidad del enlace
Paq_Enviados.- Guarda el número de paquetes enviados
La tabla PAQUETES contiene información de los paquetes enviados y
recibidos por el nodo. Los campos de la tabla son:
Id_Nodo.- Identificador del nodo y relación con la tabla de los nodos
Nombre.- Almacena el nombre del paquete
Cant_Recibidos.- Guarda el número de paquetes recibidos
Cant_Enviados.- Guarda el número de paquetes enviados
Pág. 46
La tabla PROC_EJEC almacena información de los procesos que se
están ejecutando en esa máquina en ese momento. Los campos de la
tabla son:
Id_Nodo.- Identificador del nodo y relación con la tabla de los nodos
Id_Proceso.- Almacena el identificador del proceso
Nombre_Proceso.- Contiene el nombre del proceso
3.1.B.- Tablas Temporales
Las tablas temporales sirven de almacenamiento temporal de los datos que
se desea verificar vía reportes. Tienen una configuración similar a las tablas
maestras. También se pueden agrupar en dos esquemas principales: La
configuración de Redes y la de los Nodos.
Pág. 47
3.1.1.- Configuración de Redes
Sirve para obtener los reportes de los nodos por cada red ingresada. Trabaja
con la tabla TMP_INF_INICIAL
3.1.2.-Configuración de Nodos
Sirve para obtener los reportes de los nodos de una fecha específica. Trabaja
con las tablas: TMP_INF_MEMORIA, TMP_INF_PROCESS, TMP_INF_SO,
TMP_INF_UNIDADES_HD, TMP_INTERFACES_RED, TMP_NODO,
TMP_PAQUETES y TMP_PROC_EJEC.
Pág. 48
3.2.- Diseño Arquitectónico
VscanNet
Descubridor Servidor Administrador
Recibe Dirección
de red Y Mascara
Procesa Dir de Red Y Máscara
Obtiene todas las Ip posibles de la red
Realiza el descubrimiento de red a través de un broadcast y guarda en la tabla inicial las direcciones que han
respondido
Ingreso al
Sistema
Grafica la red mediante
información de la BD
Recibe información del
Agente
Procesa información enviada por cada agente y la almacena en la BD
Obtiene información
del nodo
Envío de información al servidor cada cierto tiempo
Envío de datos al descubridor
Generación e impresión de reportes de
nodos y de red
Control y procesamiento de
los usuarios de acceso al
sistema
Provee herramientas
para facilitar el diagnóstico de
la red
Agente
Pág. 49
3.2.1.- VscanNet Administrador
A continuación se detallan las funciones principales de este módulo:
3.2.1.1.-Ingreso al Sistema
N
S S
N
Ingreso de datos
Usuario
Contraseña
Consultar BD
Carga de
aplicación
principal
Intento de ingreso = 4
Información válida
Cerrar Sistema
Pág. 50
Objetivo:
Permite la autentificación del usuario para que pueda ingresar al sistema
3.2.1.2.- Envío de Datos al Descubridor
Ingreso de IP por el usuario
Ingreso de IP por el usuario
Cálculo automático de Máscara
Envío de datos al
descubridor
S
IP Correcta
N
Pág. 51
Objetivo:
Obtener la IP ingresada por el usuario administrador, calcular la máscara
de acuerdo a la clase de red ingresada y enviar esta información a
descubridor.
3.2.1.3.- Graficar Red
Objetivo:
Graficar es esquema lógico de la red tomando la información de la Base
de Datos. Existen 3 tipos de mapas:. El Mapa de Configuración Inicial, el
Mapa Actual Y el Mapa Histórico.
Pág. 52
N
S
N
Opción Mapa de
red
Configuración Inicial
Verificar y obtener datos
de la tabla inicial
Dibujar Mapa de
Red Conf. Inicial
VscanNet
Gráfico actual
Fecha y Hora actual
Procesamient de
información
Fecha y Hora
Ingresa por Usuario
S
Dibujar Mapa de
Red
Pág. 53
3.2.1.3.1.- Mapa Configuración Inicial
Es la gráfica de la red que ha sido descubierta; es decir, es el Mapa de
todas las direcciones IP encontradas por el descubridor. La información que
se requiere para graficar es tomada de la tabla inicial.
3.2.1.3.2.- Mapa de Red – Actual
Es la gráfica de la red donde se tomará automáticamente la fecha y hora
actual del sistema para obtener la información de la base de datos; la misma
que se encuentra en la tabla maestra nodo y sus hijas.
3.2.1.3.3.- Mapa de Red Histórico
La red se grafica basados en los parámetros de fecha y hora definidos por el
usuario.
Pág. 54
3.2.2.- VscanNet Servidor
Si
No
Esperar Paquete (PIR)
Cliente
Fraccionar Datos principales
Paquete (PIR)
Si
NO
Escuchar Por Puerto
3333
C
DatagramSocket
Activar
Ha llegado Paquete
(PIR)
Cabecera =
RIN
A
Pág. 55
N
S
N
Si
A
Organiza la Información
Paquete (PIR)
En la B.D
Existe datos en la tabla
Inicial
B
BD
Fecha_Ultima_Almacenada = Fecha Actual
AND Hora_Ultma_Almac < 10 minutos
Actualizar Datos Insertar Datos
Finalizar análisis del paquete
(PIR)
B
C
Pág. 56
En la Clase ServidorVScanNet carga el DatagramSocket donde se
activa para realizar las transmisiones de paquetes siendo escuchado por el
PUERTO 3333.
Una vez accionado el Servidor de VScanNet está listo para recibir
paquetes con la estructura predefinida.
Cuando llega el paquete PIR se obtiene la cadena de información para ser
analizada. Este análisis consiste en dividir en las fracciones principales
que serán: La Cabecera y Datos Informativos.
Para guardar los datos informativos en la Base de Datos debe preguntarse
primero si ya existió un descubrimiento en la Red con las Direcciones Ip
correspondientes.
De no existir descubrimiento de la Red no podrá guardar datos en la Base
de Datos.
Y en caso de verificar la existencia de los datos del descubrimiento en la
tabla inicial de la base de Datos. Paso siguiente procederá al tratamiento de
la información; es decir dividirse estos datos en las diversos tipos de
variables que le contendrán antes de ser grabadas.
Pág. 57
El procedimiento se maneja por Inserción y Actualización, lo que implica
que se cumpla una condición. La condición establece que se compara la
última FECHA y HORA almacenada en la Base con FECHA y HORA del
SISTEMA.
La restricción de la comparación establece que si Hora del sistema es
menor a 10 minutos pasará a la actualización de los datos de esa Dirección
Ip en la B.D. Si el caso es contrario se procederá a La Inserción de los datos
en la B.D.
Una vez finalizado este recorrido retornamos a la espera de otros paquetes
PIR que tendrá la misma estructura y el mismo procedimiento.
Cabe mencionar que en la Base de Datos queda registrada la información
que es generada por el Agente ubicado en Cada una de las Pc´s que son
monitoreadas.
Pág. 58
3.2.3.- VscanNet Descubridor
Pág. 59
La aplicación Descubridor de la Red la ejecuta el Administrador de la Red
mediante el uso del comando COMMAND, luego de ejecutarla envía a través
de una conexión UDP con dirección Ip 127.0.0.1, el paquete PIR con una de
estas dos cabeceras:
Cabecera DNR
Si recibe un paquete con esta cabecera procederá a desempaquetar los
datos enviados en el cuerpo del paquete, y las almacena en variables
globales, para luego verificar que tipo de clase de red es (A, B o C) y
después calcula la cantidad de bits de la máscara, para redimensionar un
arreglo direcciones Ip con ese tamaño, después de esta acción calcula cada
una de las direcciones Ip a las cuales les hará ping y la almacena en el
arreglo de direcciones Ip.
Para finalmente realizar ping a cada una de las direcciones Ip almacenada, si
el ping a la dirección Ip fue exitoso, verifica si el tipo de descubrimiento es:
“Anterior” o “Nuevo”.
Si es de tipo “Nuevo” procederá a abrir una conexión con la Base de Datos y
almacenar la Información de ese nodo, caso contrario verifica que no se
encuentre la dirección Ip en la Base de datos para poder guardarla.
Pág. 60
Una vez terminado el proceso de efectuar ping, la aplicación termina de
ejecutarse.
FORMATO DEL PAQUETE PIR CON CABECERA DNR
DNR ¶ [Dir_Red] | [Másc] | [Clase_Red] | [IdHisto]
[Tipo_Descubrimiento] | [Cantidad_bits_Máscara]
Donde:
Símbolos Descripción
DNR
Indica que se debe de ejecutar el descubrimiento
de los nodos, valiéndose de la información
proporcionada en el cuerpo del paquete.
¶ Separador de la cabecera con el cuerpo del
paquete.
| Separador de la información del cuerpo del
paquete.
Dir_Red Direcciones Ip ya sea publicas o privadas
Masc Máscara de la dirección de red
Clase_Red Clase dirección de Red (A, B o C)
Pág. 61
Símbolos Descripción
IdHisto Valor que indica el número de descubrimiento que
pertenece la ejecución de la aplicación actual.
Tipo_Descubrimiento
Pude tomar estos dos valores:
* “NUE”: Indica que pertenece a un nuevo
descubrimiento
* “ANT”: Indica que es parte de un descubrimiento
anterior.
Cantidad_bits_Máscara Cantidad de bits que tiene la máscara de la red.
CED
Si recibe un paquete con esta cabecera procederá a terminar la ejecución de
la aplicación.
FORMATO DEL PAQUETE PIR CON CABECERA CED
CED ¶ [Datos de relleno]
Pág. 62
Donde:
Símbolos Descripción
CED Indica que se debe de cancelar la ejecución de la
aplicación actual.
¶ Separador de la cabecera con el cuerpo del
paquete.
Pág. 63
3.2.4.- VscanNet Agente
Pág. 64
Esta aplicación se ejecuta al iniciarse el Sistema Operativo Windows, una
vez ejecutado, captura el porcentaje de uso del procesador, cuyo valor lo va
almacenando en un variable para calcular el porcentaje promedio de uso con
el próximo valor a obtener por el lapso de un minuto.
Al completarse de ejecución procede a obtener información de la dirección Ip,
máscara, dirección de gateway, nombre de usuario, nombre del equipo, clase
de red, nombre, versión y usuario del S.O., nombre y porcentaje ocupado del
procesador, nombre de unidades disponibles, su capacidad ocupada y libre
de los discos duros instalados, además del porcentaje de memoria cargada,
memoria física total y disponible, información de las interfaces como es la
descripción, tipo de enlace, velocidad de enlace, paquetes enviados y
perdidos, continuando con información de los procesos que se están
ejecutando en ese momento, y por ultimo la cantidad de paquetes enviados,
recibidos y perdidos de tipo Ip, Tcp, Udp, y Ethernet.
Una vez obtenida toda esta información, la empaqueta siguiendo el formato
de empaquetamiento del protocolo creado llamado PIR, para finalmente
enviar esa información haciendo uso de una conexión UDP con dirección
destino broadcast y puerto destino 3333.
Pág. 65
Cabe indicar que cuando se obtiene el porcentaje de memoria cargada,
procesador utilizado, y capacidad de las unidades de disco duro; primero
verifica si el uso del recurso es mayor al 90 % de su capacidad total.
Si es así procede a enviar un paquete PIR con cabecera AAN y la
descripción de la alerta generada, hacia el puerto 2500 de la aplicación del
Administrador de la Red.
PIR (Protocolo de identificación de Requerimientos)
Protocolo sencillo de fácil comprensión.
Liviano.
Permite gestionar información del sistema de los nodos en una red.
La información que se almacenará a parte del esquema especificado
anteriormente, será todas las características definidas en el paquete RIN.
Tiene 4 tipos de mensajes, formado por un cuerpo y una cabecera o
identificador, en donde la cabecera identifica el tipo de mensaje.
Pág. 66
FORMATO:
Figura 3.3: PIR
Pág. 67
Descripción de los identificadores:
Identificador del
mensaje Descripción
CED Indica que se debe cancelar la ejecución de la
aplicación descubridor de la red.
AAN Indica que se ha producido una alerta.
DNR Indica que se desea realizar el descubrimiento de la red
que trae como información en el cuerpo del paquete.
RIN
Devuelve la información referente a dirección Ip,
mascara, fecha, hora y además las características del
sistema operativo, del procesador, del disco duro, de la
memoria, de los tipos de interfaces, de los procesos
que se ejecutan y de los paquetes recibidos y perdidos.
Formato de la información de cada uno de los mensajes del Protocolo
PIR que viaja en la red:
Pág. 68
Formato del paquete PIR con identificador RIN:
Cabecera Cuerpo
Dirección IP Mascara Nomb. Nodo
Gateway Clase Red
Fecha
Hora Est. Nod
o
Sistema Operativo Versión Usuario Nodo
Nombre procesador % Ocup. Procesador
Unidad Numero de serie
Tamaño total Tamaño
libre
Porcentaje de memoria cargada
Memoria fisica total
Memoria fisica disponible
Memoria virtual total
Mem. VirtualDisp
Descp. Interface
Dir. Física
Paq. Recib
Paq. Perdidos
Paq. Enviad
Tipo de enlace
Velocidad enlace
Identificador del proceso Nombre del proceso
Ip Paquetes enviados Paquetes recibidos
Tcp Paquetes enviados Paquetes recibidos
UDP Paquetes enviados Paquetes recibidos
Ethernet Paquetes enviados Paquetes recibidos
RIN
Pág. 69
Detalle:
Formato del paquete PIR con identificador DNR:
Cabecera Cuerpo
DNR
Dirección
Red
Máscara
Clase
Red
IdHisto
Tipo
Descubrimiento
Cantidad
bits
Máscara
RIN ¶ [Dir_Ip] | [Másc] | [Nom_Nodo] | [Gway] | [Clase_Red] | [fecha] | [Hora] | [Estado_nodo] &
[Nom_SO] | [Ver_SO] | [Usu_Nodo] &
[Nom_Proc] | [Porc_ocup] &
[Nom_uni 1] @ [Num_serie 1] @ [Esp_total 1] @ [Esp_libre 1] | [……………] | [Nom_uni
N] @ [Num_serie N] @ [Esp_total N] @ [Esp_libre N] &
[Mem_carg] | [Mem_fis_total] | [Mem_fis_disp] | [Mem_virt_total] | [Mem_virt_disp] &
[Desc_inter 1] @ [Dir_fis 1] @ [Paq_recib 1] @ [Paq_Perd 1] @ [Paq_Env 1] @
[Tipo_Enlace 1] @ [Vel_Enlace 1] | [……………] | [Desc_inter N] @ [Dir_fis N] @ [Paq_recib
N] @ [Paq_Perd N] @ [Paq_Env N] @ [Tipo_Enlace N] @ [Vel_Enlace N]
&
[Iden_proc 1] @ [Nom_proc 1] | [……………] | [Iden_proc N] @ [Nom_proc N] &
IP @ [Cant_Paq_IP_recib] @ [Cant_Paq_IP _env] | TCP @ [Cant_Paq_TC_recib] @
[Cant_Paq_TCP_env] | UDP @ [Cant_Paq_UDP_recib] @ [Cant_Paq_UDP_env] | ETHERNET
[Cant_Paq_ ETHERNET_recib] @ [Cant_Paq_ETHERNET _env]
Figura 3.4: Detalle Paquete PIR
Pág. 70
Detalle:
DNR ¶ [Dir_Red] | [Másc] | [Clase_Red] | [IdHisto] |
[Tipo_Descubrimiento] | [Cantidad_bits_Máscara]
Formato del paquete PIR con identificador AAN:
Cabecera Cuerpo
AAN
Nombre Nodo
Dirección Ip
Descripcion
Detalle:
DNR ¶ [Nombre_Nodo] | [Dirección_Ip] | [Descripción]
Pág. 71
3.3.- Diseño de Interfaz
A continuación se detallará la interfaz del sistema VscanNet:
3.3.1.- Acceso al Sistema
Objetivo:
Mostrar al usuario la información general del Sistema
Descripción:
Este splash de Visual Basic es lo primero que verá el usuario al momento
Fig. 3.5: Presentación del Sistema
Pág. 72
de ejecutar el Sistema.
Aquí se indica el nombre del Sistema, su versión, la fecha y en que está
basado.
3.3.2.- Inicio de Sesión
Objetivo:
Permitir o denegar el acceso a un usuario al sistema VscanNet.
Descripción:
Para poder tener acceso al sistema deberá ingresar el nombre del usuario
y su contraseña.
Fig. 3.6: Inicio de Sesión
Pág. 73
Además de mostrar por defecto tanto el nombre del equipo, como la fecha y
la hora de ingreso. El usuario deberá ingresar su nombre de usuario y la
contraseña que le ha sido asignada.
3.3.3.- Pantalla Principal
Objetivo:
Permitir al usuario utilizar todas las opciones que ofrece VscanNet.
Descripción:
Esta pantalla costa de:
Barra de Título: Contiene el nombre del Sistema y el nombre del usuario
Barra de menú: Contiene las opciones que ofrece el sistema:
Archivo
Cerrar Sesión
Salir
Descubrimiento
Iniciar
Pág. 74
Mapas de Red
Configuración Inicial
Gráfico de Red
Herramientas
Cmd
Ping
Reportes
Usuarios
Mantenimiento de Usuario
Cambio de Contraseña
Ayuda
Temas de Ayuda
Acerca De...
Barra de Herramientas: esta contiene accesos directos a las opciones
principales de la barra de menú
Pág. 75
Barra de Estado: esta contiene la siguiente información: Nombre de la
aplicación (VscanNet), Nombres y Apellidos del Usuario, Fecha, Hora,
Estado de la tecla Bloq. Mayúscula, Estado de la tecla Bloq. Numérico.
Fig. 3.7: Pantalla Principal
Barra de Título
Barra de Menú
Barra de Estado
Barra de Herramientas
Pág. 76
3.3.4.- Ventanas de mensajes
Objetivo
Interactuar con el usuario del sistema
Descripción
En el sistema se utilizan estas ventanas para mostrar mensajes de tipo:
3.3.4.1.- Mensajes de Advertencia
Advertir al usuario acerca de las acciones que está realizando.
Fig. 3.8: Ventanas de Mensajes - Advertencia
Pág. 77
3.3.4.2.- Mensajes de opción
Para permitir al usuario de escoger la acción a realizar.
3.3.4.3.- Mensajes de Error
Para indicar al usuario que se ha generado un error.
Fig. 3.9: Ventanas de Mensajes - Opción
Fig. 3.10: Ventanas de Mensajes - Error
Pág. 78
3.3.4.4.- Mensajes de Información
Para informar al usuario los resultados que se han generado por una acción
realizada.
Fig. 3.11: Ventanas de Mensajes - Información
Pág. 79
3.3.5.- Opciones de Menú
3.3.5.1.- Descubrimiento
Inicio el descubrimiento
Fig. 3.12: Descubrimiento
Fig. 3.13: Descubrimiento(mensaje)
Pág. 80
3.3.6.A.- Mapas de Red
3.3.6.1.-Configuración Inicial
Esta es la ventana donde se mostrará al usuario el mapa de la red en su
configuración inicial; es decir, el usuario podrá visualizar todas la redes que
han sido descubiertas mediante la opción “Descubrimiento”.
Así mismo se tiene una ventana de título y una barra de herramientas.
Barra de título: Nombre de la opción del menú principal escogida.
Barra de herramientas: Se tiene dos opciones:
Procesos
Guardar
Salir
Pág. 81
3.3.6.B.-Mapas de red
3.3.6.1.-Gráfica de Red
Aquí el usuario visualizará la red dependiendo de la opción que escoja. Este
podrá ver el mapa de la red actual o el histórico. Por defecto se tiene
activado el botón en opción “Actual.” En el caso del mapa histórico tendrá
que ingresar como parámetros la fecha y la hora.
Fig. 3.14: Mapas de Red: Configuración Inicial
Pág. 82
Así mismo se tiene una ventana de título y una barra de herramientas.
Barra de título: Nombre de la opción del menú principal escogida.
Barra de herramientas: Se tiene tres opciones:
Procesos
Guardar
Herramientas
Ver leyenda
Salir
Pág. 83
3.3.6.2.- Propiedades del Nodo
Esta ventana es la que visualizará el usuario cuando de clic en el botón
derecho del Mouse sobre una Pc del mapa de red. El formato se mantiene
para cada una de las 7 propiedades, se muestra una imagen representativa y
la información correspondiente.
Fig. 3.15: Mapas de Red: Gráfica de Red
Botones de Opción Parámetros: Fecha / Hora
Pág. 84
3.3.7.-Herramientas
3.3.7.1.-Cmd
Aquí se está invocando a la ventana de DOS del sistema operativo.
Fig. 3.16: Mapas de Red: Propiedades
Pág. 85
3.3.7.2.-Ping
Permite al usuario hacer ping a cualquier dirección de la red.
Fig. 3.17: Herramientas: Cmd
Pág. 86
3.3.7.3.-Reportes
Permite al usuario elaborar reportes ya sea por nodo o por red; con la opción
de Visualización por pantalla o imprimirlos.
Fig. 3.18: Herramientas: Ping
Pág. 87
3.3.7.3.1.- Visualizar por pantalla
Fig. 3.19: Herramientas: Reportes - Pantalla
Pág. 88
3.3.7.3.2.- Impresora
El usuario podrá configurar la impresora que empleará para imprimir los
reportes.
Fig. 3.20: Herramientas: Reportes: Imprimir
Pág. 89
3.3.8.- Usuarios
3.3.8.1.- Mantenimiento de usuarios
Aquí el usuario podrá crear, actualizar, buscar y eliminar usuarios del
sistema. Esta ventana aparecerá igual para todas la opciones excepto para la
de búsqueda de usuario.
Fig. 3.21 : Usuarios – Mantenimiento de Usuarios
Pág. 90
3.3.8.2.- Buscar Usuario
Fig. 3.22 : Usuarios – Mantenimiento de Usuarios - Buscar
Pág. 91
3.3.8.3.- Cambio de contraseña
Aquí el usuario podrá modificar su contraseña.
Fig 3.23 : Usuarios – Cambio de Contraseña
Pág. 92
3.3.9.- AYUDA
3.3.9.1.- Temas de Ayuda
Esta opción muestra en pantalla la ayuda del sistema. Lo que mostrará será
una página del Internet Explorer.
Fig. 3.24: Ayuda / Temas de Ayuda
Pág. 93
3.3.9.2.- Acerca De
Esta opción muestra en pantalla la versión del sistema y su funcionabilidad.
Fig. 3.25: Ayuda / Acerca De
Pág. 94
3.4.- Diseño de Componentes
La base de datos contiene dos componentes o procedimientos almacenados:
SP_DISTRIBUCION
SP_IMPNODO
SP_DISTRIBUCION
Sirve para verificar el estado de un nodo específico en una fecha y hora
señalada
Funcionamiento: Dependiendo si es por red o un solo nodo, obtiene todas
las IP que se van a procesar. Luego agrupa las IP y actualiza el estado de
cada una según la siguiente tabla:
Si se encuentra en ambas tablas (inicial y nodo) y el estado es cero,
entonces corresponde a una PC OK
Si se encuentra en ambas tablas y el estado es uno, entonces
corresponde a una PC con Alerta.
Pág. 95
Si se encuentra solo en la tabla nodo y el estado es cero, entonces es
una PC nueva
Si se encuentra solo en la tabla nodo y el estado es uno, entonces es
una PC con alerta
Si se encuentra solo en la tabla inicial entonces es una PC no OK
SP_IMPNODO
Llena las temporales de los reportes dependiendo de que tipo de reporte se
necesite
Funcionamiento: Dependiendo si el reporte pedido es por red o por nodo, el
procedimiento primero borra toda la información de las temporales, luego
guarda en las mismas la información respectiva, tomando como base las
tabas maestras
Pág. 96
CAPITULO 4
DESARROLLO Y PRUEBA DEL SISTEMA
4.1 Desarrollo del Sistema
4.1.1. Creación de la base de datos
Se eligió Microsoft SQL 2000 como base de datos del proyecto por los siguientes motivos:
Pág. 97
Principalmente porque SQL SERVER es muy compatible y ofrece la
facilidad de conexión con la herramienta de desarrollo del proyecto: Visual
Basic 6.0
SQL Server 2000 ofrece un motor de base de datos moderno, muy
escalable y confiable para el almacenamiento de datos. Este motor de base
de datos almacena los datos en tablas
SQL es una base de datos robusta y escalable; es decir, que admite
intervalos de acceso de usuarios al mismo tiempo.
Es muy portable, la base de datos puede estar en cualquier servidor de la
red, e incluso, manejarse remotamente.
Es muy conocida y facil de usar; de esta forma abarata los costos ya que
existen muchos desarrolladores y diseñadores de base de datos que la
conocen.
Es muy segura, ofrece dos tipos de autentificación de usuario:
Autentificación de Windows y Autentificación de SQL Server.
Trabaja muy bien con Microsoft Windows XP y 2000, estos sistemas
operativos son la gran mayoría en el mercado mundial.
Pág. 98
Su instalación es relativamente sencilla. Además los requisitos del
sistema, tanto hardware como software, son bastante básicos
Ofrece una alta compatibilidad con versiones anteriores de SQL (7.0 y 6.5)
El motor de la base de datos relacional es muy confiable y capaz de
funcionar durante largos períodos sin que exista inactividad.
Valores de la Base de Datos
Tamaño:
La base de datos inicial, esto es la base de datos vacía con el único dato del
usuario admin, tiene un tamaño aproximado de 1.5 MB para el archivo de
datos (extensión .mdf) y 1.5 MB para el archivo de registro de transacciones
o log (extensión .ldf)
El espacio en disco para el buen desarrollo y rendimiento de la base de datos
es un espacio mínimo de 1 GB y recomendado 4 GB.
El crecimiento de la base se debe en su mayoría al archivo de logs
(extensión .ldf).
Pág. 99
Hay que considerar que dependiendo de la gran cantidad de borrados,
inserciones y actualizaciones que se realicen, el tamaño del archivo de
registros aumentará considerablemente.
La base de datos, tiene un crecimiento automático, tanto del archivo de datos
como del archivo de log de transacciones; con un porcentaje de crecimiento
del 10% y sin limite en cuanto al tamaño de los archivos.
Se estima que el crecimiento del tamaño de la base no supera, en lo que
respecta al archivo de datos, los 2 MB semanal y en cuanto al archivo de
logs, los 4 MB semanal (verificar).
4.2. Seguridades
Sistema Operativo
La seguridad del sistema operativo se basa en estos puntos
La contraseña del usuario de red
Service packs
Pág. 100
Base de Datos
La seguridad de la base de datos se basa en estos puntos
La contraseña del usuario sa
La mayor parte de las tablas tienen claves primarias y foráneas, lo
que asegura datos coherentes
Seguridad del Sistema
Las seguridades del sistema se basan en estos puntos
El ingreso al sistema se hace mediante un usuario y una
contraseña suministrada por el administrador del sistema
Cada usuario solo puede ingresar al sistema en un rango de hora
predeterminado por el administrador del sistema
La contraseña en la base de datos se guarda encriptada
La contraseña del usuario viaja por la red encriptada
Pág. 101
4.3. Pruebas del Sistema
4.3.1.-Modelo de Prueba
Con la finalidad de comprobar que cada función del sistema es
completamente operativa, se escogió como modelo de prueba: “La Prueba
De La Caja Negra”.
El objetivo principal de este modelo de prueba se centra en los requisitos
funcionales de VscanNet.
La prueba de la Caja Negra nos ayudará a encontrar errores categorizados
de la siguiente forma:
Funciones incorrectas o ausentes
Errores de interfaz
Errores de Rendimiento
Errores de inicialización y de terminación
Pág. 102
De esta forma se han podido realizar la validaciones de los requisitos
funcionales sin fijarse en las funciones internas del programa, centrándose
solo en el ámbito de información del sistema.
4.3.2.- Prueba de Interfaz
Tomando como referencia los puntos tratados en el texto de Ingenieria de
Software de Roger S. Pressman; a continuación se detalla un cuestionario,
el mismo que nos sirvió para poder llevar a cabo las pruebas de interfaces
gráficas de usuario.
“Capitulo 16: Métodos de prueba del software, prueba de
interfaces gráficas de usuario (pág. 319)”
Para ventanas
¿Las ventanas se abren basadas en órdenes generadas por el teclado o
en un menú?
Se abren solamente desde el menú de la aplicación principal
Pág. 103
¿Se puede ajustar e tamaño, mover y desplegar las ventanas del
sistema?
Solo mover y desplegar. No se puede cambiar el tamaño de las ventanas
¿Las funciones de las ventanas están operativas?
Si, todas las funciones están operativas, excepto las opciones
“Descubrimiento de Red” y “Mantenimiento de Usuarios” si ingresa con un
usuario que no es administrador
Al desplegarse varias ventanas del sistema, ¿está representado
correctamente el nombre de cada una?
Así es. Los nombres son bastante descriptivos
¿La ventana activa está correctamente resaltada?
Sí, en la barra de tareas del sistema operativo se visualiza claramente
¿Existe una actualización adecuada de todas las ventanas al momento
de utilizar multitarea?(si se da el caso)
Así es
Pág. 104
Dentro de la ventana, ¿El contenido de la información es accesible sin
problemas por el ratón, las teclas funcionales, flechas direccionales y el
teclado?
La información es accesible desde cualquiera de los puntos anteriormente
señalados
¿Existe una regeneración adecuada cuando se sobrescribe y se vuelve
abrir una ventana?
Así es
¿La ventana se cierra adecuadamente?
Si, incluso no se puede cerrar la aplicación principal sin antes haber cerrado
las ventanas “secundarias”
Pág. 105
Menús emergentes y operantes con el ratón
¿Se muestra la barra de menú apropiada con el contexto apropiado?
Así es, se muestran las opciones más importantes
¿Las operaciones de despliegue funcionan correctamente?
Sí. Su funcionamiento es correcto
¿Están listadas correctamente todas las funciones del menú y
subfunciones emergentes?
Sí. La lista es bastante completa
¿Se puede tener acceso con el ratón a todas las funciones del menú?
Sí. A todas las funciones, excepto las opciones “Descubrimiento de Red” y
“Mantenimiento de Usuarios” si ingresa con un usuario que no es
administrador
Pág. 106
¿La ejecución de todas las funciones del menú se realizan como se
esperaba?
Así es, funcionan correctamente
¿Los nombres de las funciones del menú están claros?
Sí. Los nombres de las funciones son bastante descriptivos
¿Cambian adecuadamente el cursor, el indicador de
procesamiento(Ejemplo: un reloj) y puntero al invocar diferentes
operaciones?
Cambian adecuadamente, dependiendo del proceso que se necesite. No
todas las ventanas tienen esta función
¿Si se cuenta con un ratón con varios botones, estos son reconocidos
apropiadamente en el contexto?
Así es. El botón izquierdo y derecho. El botón central no se ha probado pero
debería funcionar sin problemas.
Pág. 107
Entrada de datos
¿Se repiten y son introducidos adecuadamente los datos alfanuméricos
en el sistema?
Son introducidos de forma correcta
¿Los datos no válidos son reconocidos adecuadamente?
Así es. El programa detecta los datos incorrectos e inválidos antes de realizar
cualquier proceso con éstos
¿Los mensajes de entrada de datos son inteligibles?
Sí
Pág. 108
CAPITULO 5
IMPLEMENTACIÓN DEL SISTEMA
5.1. Elementos Físicos
A continuación se detalla cada uno de los recursos físicos que se necesitaron
para el desarrollo y pruebas de nuestra aplicación:
HP Notebook PC Pavilion n5000
Procesador Intel Pentium III 850 Mhz
128 Mb de RAM
Disco duro: 20 Gb
Pág. 109
PC Pentium IV
Procesador Intel Pentium IV 2.4
256 Mb de RAM
Disco Duro: 80 Gb
5.2. Elementos lógicos
Sistema Operativo:
Windows NT
Windows XP Professional
Lenguajes de programación:
Visual Basic 6.0
Desarrollo de la interfaz gráfica de la aplicación (Administrador VscanNet)
Desarrollo del Cliente VscanNet (Agente VscanNet)
Desarrollo del Descubridor VscanNet
Java
Desarrollo del Servidor VscanNet
Pág. 110
Base de datos:
SQL Server 2000
Reportes
Cristal Reports 5.0
Diseño y creación de íconos
IconLover versión 2.15
Icon Searcher versión 2.02
Creación de la Ayuda
RoboHelpX5
5.3. Elementos Humanos
5.3.1.-Desarrolladores del sistema:
Glenda Tapia Parada:
Desarrollo de Interfaz VscanNet(Administrador)
Pág. 111
Danilo Calle Fierro:
Desarrollo del Cliente VscanNet(Agente)
Desarrollo del Descubridor VscanNet
Betty Villacrés:
Desarrollo del Servidor VscanNet
5.3.2.-Usuarios del sistema
Administradores de la red
Usuarios con un nivel medio de conocimientos en
administrar redes.
Pág. 112
CAPITULO 6
RECOMENDACIONES Y CONCLUSIONES DE LA
TESIS
6.1.-Recomendaciones
6.1.1.-Hardware
Como recomendación de hardware se puede indicar de que la empresa y/o
negocio que adquiera nuestro producto considere los requerimientos
mínimos del sistema detallados en el manual de usuario del mismo.
Pág. 113
Estos requerimientos dependerán de cómo el administrador del sistema vaya
a distribuir los módulos del mismo.
6.1.2.- Software
Como recomendación de software se puede indicar de que la empresa y/o
negocio que adquiera nuestro producto considere los requerimientos
mínimos del sistema detallados en el manual de usuario del mismo.
Estos requerimientos dependerán de cómo el administrador del sistema vaya
a distribuir los módulos del mismo.
Dependiendo de cada uno de estos módulos se debe considerar las
actualizaciones de cada uno de los softwares requeridos para el correcto
funcionamiento del sistema.
Este es el caso del Módulo Agente, donde se debe considerar la
actualización de las herramientas Winsock y Ppaquet.
Otro punto importante son los servipacks de sistemas operativos que tengan
disponibles, tratar en lo posible mantener el mínimo requerido.
Pág. 114
6.1.3.- Cableado(Conexiones de Red)
Es recomendable que el administrador de la red considere el correcto
funcionamiento y diseño del cableado estructurado de la empresa y/o
negocio que ha adquirido el producto. Ya que el correcto funcionamiento del
mismo va a depender de que la red este bien implementada y funcionando
correctamente.
En algunas ocasiones las funciones del sistema, sobre todo la del
descubrimiento de la red dependerá de la velocidad de enlace que tenga la
misma.
6.1.4.- Puesta en Marcha
El usuario administrador debe considerar los siguientes puntos antes de
iniciar el funcionamiento del sistema.
1. Es recomendable que para el descubrimiento de la red, sobre todo si
se lo va a realizar por primera vez (descubrimiento inicial); todas las
PC´s que pertenezcan a las redes que se desean descubrir estén
encendidas.
Pág. 115
2. Es recomendable que la primera tarea a ejecutarse mediante el
sistema sea la del descubrimiento de red, y posteriormente se
empiencen a activar los agentes instalados en cada unas de las PC´s
6.1.5.- Seguridades
Se recomienda de que el usuario administrador considere:
1. Realizar un cambio de contraseña trimestralmente, para evitar que la
información se filtre y puedan descubrirla y emplearla de manera
inapropiada.
2. El Administrador del sistema deberá considerar realmente a quien se
deberá asignar una clave de ingreso al sistema en caso de que se
necesite de un reemplazo.
3. El Administrador deberá considerar a quien restringe en cuanto a las
funciones del sistema.
Pág. 116
6.2. CONCLUSIONES
A continuación cada uno de los desarrolladores del sistema presentará sus
conclusiones:
6.2.1.-Por Glenda Del Rocío Tapia Parada
Uno de los objetivos principales al momento de desarrollar nuestra aplicación
se centró en crear un sistema que permita facilitar el control de la red
mediante herramientas y funciones sencillas que permitan al usuario
administrador de una res poder realizar un monitoreo de la misma de una
forma más eficiente y rápida.
De esta forma se atacará la ineficiencia e inconvenientes que podrían
generarse dado a que no se cuenta con una herramienta que permita
visualizar tanto el estado operacional como la información general de un
nodo(PC) de la red y/o redes que se administran.
Dados estos antecedentes surge VscanNet como una solución a estos
problemas, ya que este sistema permite visualizar la red en un esquema
lógico y sencillo, donde además de mostrar la información relevante de cada
nodo(PC) que posee una empresa y/o negocio.
Pág. 117
6.2.2.-Por Betty América Villacrés
Pág. 118
6.2.3.-Por Danilo Calle Fierro
El Sistema VscanNet, es una muy buena herramienta de ayuda para los
Administradores de redes basadas en Plataforma Windows y Protocolo
TCP/IP. Entre sus ventajas principales estan:
interfaz gráfica amigable
brindar la facilidad de descubrir los nodos de la red
Estar al tanto de la disponibilidad/no disponibilidad de los nodos en
tiempo real
Conocer el porcentaje de utilización de los principales recursos del
nodo como son Memoria, procesador y disco duro. Asi tambien, nos
permite obtener reportes en tiempo real e histórico.
Ademas de todos estos beneficios, informa al administrador en tiempo real,
cuando se produce un alto uso de cualquiera de los recursos principales
como son memoria, procesador o disco duro.
Pág. 119
REFERENCIAS BIBLIOGRÁFICAS
1. Dr. Sydney Feit, TCP/IP : Arquitectura, protocolos e implementación y
seguridad. Osborne McGraw-Hill 1998.
2. Roger S. Pressman, Ingeniería del Software un Enfoque Práctico,
Cuarta Edición. Osborne McGraw-Hill 1997.
3. Capitulo 16: Métodos de Prueba del Software
Roger S. Pressman, Ingeniería del Software un Enfoque Práctico,
Cuarta Edición. Osborne McGraw-Hill 1997.
UNIVERSIDAD DE GUAYAQUIL
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
“VscanNet” Visualización y Escaneo de la Red
PROYECTO DE GRADO
Previo a la Obtención del Título de:
INGENIERO EN SISTEMAS COMPUTACIONALES
Autor(es):
Glenda Del Rocío Tapia Parada
Danilo Calle Fierro
Betty América Villacres
GUAYAQUIL-ECUADOR
Año: 2004 - 2005
II
AGRADECIMIENTO.
Agradezco a Dios por
todas sus bendiciones a
mis padres por su apoyo
y ayuda incondicional,
como también a todas
las personas que de uno
u otro modo colaboraron
en la realización de este
trabajo y especialmente
al Ing. Carlos Carranza
por su invaluable ayuda.
Glenda Tapia Parada
III
AGRADECIMIENTO.
Agradezco de manera
cordial al Ing. Carlos
Carranza, que con su
sabiduría y experiencia
nos orientó de manera
muy acertada a la
culminación de este
proyecto.
Danilo Calle Fierro
IV
DEDICATORIA.
Dedico este Trabajo a
Mis Padres, a mi Hija y
Hermanas, quienes
siempre estuvieron
conmigo brindándome
su apoyo de una forma
incondicional.
Glenda Tapia Parada
V
DEDICATORIA.
Dedico el desarrollo y
culminación de este
proyecto a Dios. A mis
padres y hermanas que
han sido fuentes de
inspiración y me
ayudaron a seguir
adelante.
Danilo Calle Fierro
VI
TRIBUNAL DE GRADUACIÓN
Ing. Abel Alarcón
Presidente CCG
Ing. Carlos Carranza P. Ing. José Luis Peralta
Profesor / Vocal Profesor / Vocal
Ab. Juan Chavez Atocha
Secretario
VII
DECLARACIÓN EXPRESA
“La autoría de la tesis de grado corresponde exclusivamente al suscrito(s),
perteneciendo a la Universidad de Guayaquil los derechos que generan la
aplicación de la misma”
(Reglamento de Graduación de la Carrera de Ingeniería en Sistemas
Computacionales, Art. 26)
RESUMEN
VscanNet (Sistema de Visualización y Escaneo de Red) fue creado para
permitir los usuarios administradores de red poder visualizar el esquema
lógico de las redes que administran; para de esta forma facilitar la tarea de
monitorear la red dado a que nuestra aplicación también permite conocer la
información de cada elemento de la red(NODO-PC’S) como también su
estado operacional.
Esta aplicación facilita el control a través de funciones sencillas que
permiten monitorear una red cuya infraestructura se basa en la arquitectura
TCP/IP.
IX
INDICE GENERAL
AGRADECIMIENTO II
DEDICATORIA III
TRIBUNAL DE GRADUACIÓN IV
DECLARACIÓN EXPRESA V
RESUMEN VI
INDICE GENERAL VII
CAPITULO 1 1
MANUAL DE INSTALACIÓN
Contenido CD de Instalación 3
1.- Instalación de VscanNet Administrador 3
X
1.1 Iniciar 3
1.1.2.-Copiar los archivos de instalación 5
1.1.3.-Escoger VscanNet como opción de programa a instalar 6
1.1.4.-Instalando VscanNet 7
1.1.5.-Instalación terminada 8
1.1.6.- Cancelación de Instalación 9
1.1.7.- Directorio de Instalación 10
1.2.- Instalación de VscanNet Agente 11
2.- PASOS ADICIONALES A LA APLICACIÓN 14
2.1.- Base de Datos: 14
2.2.- Conexión a la Base de Datos: 15
2.3.- Reportes 24
2.4.- Ayuda 24
2.5.- Manifest 25
XI
CAPITULO 2 26 MANUAL DE USUARIO
2.1.- INTRODUCCIÓN 28
VscanNet Agente 31
VscanNet Administrador 31
VscanNet Servidor 31
VscanNet Descubridor 32
2.2.-FUNCIONES PRINCIPALES 33
ACCESO AL SISTEMA 33
INICIO DE SESIÓN 34
PANTALLA PRINCIPAL 40
PANTALLA PRINCIPAL 44
XII
1. Archivo 44
1.1.- Cerrar Sesión 44
1.2.- Salir 45
2. Descubrimiento 46
2.1.- Descubrimiento de Subredes 49
3. Mapas de Red 52
3.1. Configuración Inicial 52
3.2. Gráfico de Red 54
Propiedades Generales 58
Sistema Operativo 59
Procesador 60
Discos Duros 61
Memoria 62
XIII
Red 64
Procesos 65
4. Herramientas 67
4.1. Cmd 68
4.2. Ping 69
4.3. Reportes 70
4.3.1. Reportes por Nodo 71
4.3.2. Reportes por Red 73
5. Usuarios 76
5.1. Mantenimiento de Usuarios 76
5.1.1. Búsqueda de Usuario 79
5.1.2 Crear Usuario 84
XIV
5.1.3 Actualizar Usuario 85
5.1.4 Eliminar Usuario 87
5.1.5 Guardar modificaciones 87
5.2. Cambio de Contraseña 87
6. Ayuda 91
6.1. Temas de Ayuda 92
6.2. Acerca De 93
2.3.-REQUERIMIENTOS DEL SISTEMA 94
Servidor VscanNet 96
Administrador VscanNet 98
Agente VscanNet 100
Descubridor VscanNet 102
XV
VScanNet Administrador 32
VScanNet Descubridor 33
VScanNet Agente 33
VScanNet Servidor 34
CAPITULO 3 104
MANUAL TÉCNICO
3.1.- Diagramas 105
3.1.1.-Árbol de problemas 106
3.1.2.-Árbol de Objetivos 107
3.1.3.- Diagrama Flujo de Datos 108
XVI
3.1.4.- Diagrama Entidad Relación 109
3.1.5.- Arquitectura de VscanNet 111
3.1.6.- Arquitectura VscanNet Administrador 112
3.1.6.1.- Ingreso al Sistema 112
3.1.6.2.- Envío de Datos al Descubridor 113
3.1.6.3.- Graficar Red 114
3.1.6.7.- Arquitectura VscanNet Servidor 115
3.1.6.8.- Arquitectura VscanNet Descubridor 117
3.1.6.9.- ARQUITECTURA VSCANNET AGENTE 118
3.2.- Creación del Script 119
Script de creación de la base de datos 119
Script de creación de los procedimientos 132
3.3.- Código Funciones principales del sistema 140
VSCANNET ADMINISTRADOR 140
XVII
GRAFICAR RED 140
DESCUBRIMIENTO DE REDES 148
VSCANNET SERVIDOR 156
VSCANNET AGENTE 165
Formulario Agente 165
Modulo Disco_Duro 169
VSCANNET DESCUBRIDOR 173
ANEXOS 184
Diccionario de Datos 184
Diagrama de Flujo de Datos 204
XVIII
INDICE DE FIGURAS
CAPITULO 1 1
MANUAL DE INSTALACIÓN
Figura 1.1: Instalación VscanNet 4
Figura 1.2: Instalación VscanNet(Arch. De Instalación) 5
Figura 1.3: Instalación VscanNet(Escoger opción de programa) 6
Figura 1.4: Instalación VscanNet 7
Figura 1.5: Instalación VscanNet(Finalizando Instalación) 8
Figura 1.6: Instalación VscanNet(Cancelar Instalación) 9
Figura 1.7: Instalación VscanNet – Ubicación VscanNet 10
Figura 1.8: Instalación VscanNet Agente 11
Figura 1.9: Instalación Agente VscanNet 12
XIX
Figura 1.10 : Instalación Agente VscanNet 13
Figura 1.8: Conexión Base de Datos 15
Figura 1.9: Conexión Base de Datos 16
Figura 1.10: Conexión Base de Datos (1) 17
Figura 1.11 Conexión Base de Datos(2) 18
Figura 1.12: Conexión Base de Datos(3) 19
Figura 1.13: Conexión Base de Datos(4) 20
Figura 1.14: Conexión Base de Datos(5) 21
Figura 1.15: Conexión Base de Datos(6) 22
Figura 1.16: Conexión Base de Datos (7) 23
CAPITULO 2 26
MANUAL DE USUARIO
Figura 2.1: Presentación del Sistema 33
Figura 2.2: Inicio de Sesión 34
Figura 2.3: Inicio de Sesión 35
XX
Figura 2.4: Inicio de Sesión 36
Figura 2.5: Inicio de Sesión 37
Figura 2.6: Inicio de Sesión 38
Figura 2.7: Inicio de Sesión 39
Figura 2.9: Pantalla Principal 43
Figura 2.10: Opción Archivo- Cerrar Sesión 44
Figura 2.11: Opción Archivo- Salir 45
Figura 2.12: Opción Archivo- Salir 46
Figura 2.13: Opción Descubrimiento 48
Figura 2.14: Descubrimiento de subredes 49
Figura 2.15: Opción Descubrimiento(mensaje) 50
Figura 2.16: Opción Descubrimiento – Terminar 51
Figura 2.17: Opción Mapas de Red – Configuración Inicial 52
Figura 2.18: Opción Mapas de Red – Configuración Inicial-Guardar 53
XXI
Figura 2.19: Opción Mapas de Red – Grafico de Red /Actual 54
Figura 2.20: Opción Mapas de Red – Grafico de Red /Actual 55
Figura 2.21: Opción Mapas de Red – Grafico de Red 56
Figura 2.22: Opción Mapas de Red – Grafico de Red/ Propiedades 57
Figura 2.23: Opción Mapas de Red – Grafico de Red/ Propiedades/
Generales 59
Figura 2.24: Opción Mapas de Red – Grafico de Red/ Propiedades
/S.O 60
Figura 2.25: Opción Mapas de Red – Grafico de Red/ Propiedades/
Procesador 61
Figura 2.26: Opción Mapas de Red – Grafico de Red/ Propiedades
/ HD 62
Figura 2.27: Opción Mapas de Red – Grafico de Red/ Propiedades/
Memoria 63
XXII
Figura 2.28: Opción Mapas de Red – Grafico de Red/
Propiedades/ Tarjetas 64
Fig. 2.29: Opción Mapas de Red – Grafico de Red/
Propiedades/ Procesos 65
Figura 2.30: Opción Mapas de Red – Grafico de Red/
Propiedades 67
Figura 2.31: Opción Herramientas – Cmd 68
Figura 2.31: Opción Herramientas – Ping 69
Figura 2.32: Opción Herramientas – Reportes 70
Figura 2.33: Opción Herramientas – Reportes Por Nodo 72
Figura 2.34 : Opción Herramientas – Reportes Por Nodo 72
Figura 2.35: Opción Herramientas – Reportes Por Red 73
Figura 2.36 : Opción Herramientas – Reportes Por Red 74
Figura 2.37 : Opción Herramientas – Reportes – Imprimir 75
XXIII
Figura 2.39 : Usuarios – Mantenimiento de Usuarios / Buscar 80
Figura 2.40 : Usuarios – Mantenimiento de Usuarios / Buscar 82
Figura 2.41 : Usuarios – Mantenimiento de Usuarios / Buscar 82
Figura 2.42 : Usuarios – Mantenimiento de Usuarios / Buscar 83
Figura 2.43 : Usuarios – Mantenimiento de Usuarios / Nuevo Usuario 84
Figura 2.44 : Usuarios – Mantenimiento de Usuarios / Actualizar 85
Figura 2.45 : Usuarios – Mantenimiento de Usuarios / Actualizar 86
FIGURA 2.46 : USUARIOS – MANTENIMIENTO DE USUARIOS / ACTUALIZAR 86
Figura 2.47 : Usuarios – Cambio de Contraseña 88
Figura 2.48: Usuarios – Cambio de Contraseña 89
XXIV
Figura 2.49 : Usuarios – Cambio de Contraseña 89
Figura 2.50: Usuarios – Cambio de Contraseña 90
Figura 2.51 : Usuarios – Cambio de Contraseña 91
Figura 2.52 : Ayuda VscanNet 92
Figura 2.52 : Ayuda – Acerca De 93
CAPITULO 3 104
MANUAL TÉCNICO
Figura 3.1: Diagrama Flujo de Datos 108
Figura 3.2: Diagrama Entidad Relación 109
Figura 3.3: Especificación de Objetos 110
XXV
Figura 3.4: Creación de la Base de Datos 119
Figura 3.5: Creación opciones por defecto de la Base de datos 120
Figura 3.6: Eliminación de las relaciones si existen 121
Figura 3.7: Eliminación de tablas si existen 122
Figura 3.8: Eliminación de tablas si existen 123
Figura 3.9: Eliminación de tablas si existen 124
Figura 3.10: Creación de tablas 125
Figura 3.11: Creación de tablas 126
Figura 3.12: Creación de tablas 127
Figura 3.13: Creación de tablas temporales 128
Figura 3.14: Creación de tablas temporales 129
Figura. 3.15: Creación de relaciones 130
Figura 3.16: Creación de relaciones 131
XXVI
Figura 3.17: Creación Procedimiento Almacenado
SP_ImpNodo 132
Figura 3.18: Creación Procedimiento Almacenado
SP_ImpNodo 133
Figura 3.19: Creación Procedimiento Almacenado
SP_ImpNodo 134
Figura 3.20: Creación Procedimiento Almacenado
SP_Distribución 135
Figura 3.21: Creación Procedimiento Almacenado
SP_Distribución 136
Figura 3.22: Creación Procedimiento Almacenado
SP_Distribución 137
XXVII
Figura 3.23: Creación Procedimiento Almacenado
SP_Distribución 138
Figura. 3.24: Creación Procedimiento Almacenado
SP_Distribución 139
Figura 3.25: Graficar Red/ Conexión BD y Validaciones 140
Figura 3.26: Graficar Red/ Conexión BD y Validaciones 141
Figura 3.27: Graficar Red/ Conexión BD y Validaciones 142
Figura. 3.28: Graficar Red/ Conexión BD y Validaciones 143
Figura 3.29: Graficar Red / Dibujar Objetos 144
Figura 3.30: Graficar Red / Dibujar Red 145
Figura 3.31: Graficar Red / Dibujar Arbol 146
Figura 3.32: Graficar Red / Dibujar Arbol 147
Figura 3.33: Descubrir Red 148
Figura 3.34: Descubrir Red 149
XXVIII
Figura. 3.35: Descubrir Red 150
Figura. 3.36: Descubrir Red 151
Fig. 3.37: Descubrir Red 152
Fig. 3.38: Descubrir Red 153
Figura 3.39: Descubrir Red 154
Figura 3.40: Descubrir Red 155
Figura .3.41: Clase Principal / Cargar
Servidor VScanNet 156
Figura 3.42: Método de la Clase UDPServ /
Recibe Paquete 158
Figura 3.43: Método de la Clase UDPServ/
Reconoce la Cabecera 159
Figura 3.44: Método de la Clase UDPServ/
Separa inf. Principal Paquete 160
XXIX
Figura 3.45: Método de la Clase UDPServ// Separa
inf. Principal Paquete 161
Figura 3.46: Método de la Clase UDPServ/
almacenamiento temporal 162
Figura 3.47: Clase Base/ Crea Conexión 163
Figura 3.48: Formulario agente165 164
Figura 3.49: Formulario agente 165
Figura 3.50: Formulario agente 166
Figura 3.51: Formulario agente 167
Figura 3.52: Modulo_Disco_Duro 168
Figura 3.53: Modulo_Disco_Duro 169
Figura 3.54: Modulo_Estado_Memoria 170
Figura 3.55: Modulo_Estado_Memoria 171
Figura 3.56: Formulario Descubridor_Red 172
XXX
Figura 3.57: Formulario Descubridor_Red 173
Figura 3.58: Formulario Descubridor_Red 174
Figura 3.59: Formulario Descubridor_Red 176
Figura 3.60: Formulario Descubridor_Red 177
Figura 3.61: Formulario Descubridor_Red 178
Figura 3.62: Formulario Descubridor_Red 179
Figura 3.63: Formulario Descubridor_Red 180
Figura 3.64: Formulario Descubridor_Red 181
Figura 3.65: Formulario Descubridor_Red 182
XXXI
ANEXO 183
Diccionario de Datos
Pág. 1
CAPITULO 1
MANUAL DE INSTALACIÓN
Pág. 2
VscanNet
Version 1.0
Pág. 3
CONTENIDO CD DE INSTALACIÓN
Instaladores del: Administrador, Descubridor y Agente
Archivo ejecutable del Servidor VscanNet
Carpetas: Reportes y Help
Carpeta Procedimientos(Indispensable ejecutar, requerimiento base
de datos)
Archivo . manifest
1- Instalación de VscanNet Administrador
Para la instalación de la aplicación se siguen los pasos que a continuación se
describen.
1.1.- INICIAR
Doble clic al archivo setup.exe que se encuentra en el CD de Instalación
Carpeta Administrador_Descubridor.
Pág. 4
Primer paso
Fig. 1.1: Instalación VscanNet
Pág. 5
1.1.2.-Copiar los archivos de instalación
Fig. 1.2: Instalación VscanNet(Arch. De Instalación)
Pág. 6
1.1.3.-Escoger VscanNet como opción de programa a instalar
Fig. 1.3: Instalación VscanNet(Escoger opción de programa)
Pág. 7
1.1.4.-Instalando VscanNet
Fig. 1.4: Instalación VscanNet
Pág. 8
1.1.5.-Instalación terminada
Fig. 1.5: Instalación VscanNet(Finalizando Instalación)
Pág. 9
1.1.6.- CANCELACIÓN DE iNSTALACIÓN
En caso de cancelar la instalación el instalador automáticamente quitará los
archivos que hayan sido instalados hasta ese entonces
Fig. 1.6: Instalación VscanNet(Cancelar Instalación)
Pág. 10
1.1.7.-Directorio de Instalación
El programa se instalara por defecto en el directorio "C:\Archivos de
programa\VScanNet\VScanNet.exe"; pero éste puede ser cambiado en el
momento de la instalación.
El acceso directo se creará en Inicio -> Programas -> VScanNet ->
VScanNet.
Fig. 1.7: Instalación VscanNet – Ubicación VscanNet
Pág. 11
1.2.- Instalación de VscanNet Agente
Para la instalación de la aplicación se siguen los pasos que a continuación se
describen.
1. Doble clic al archivo setup.exe que se encuentra en el CD de
Instalación Carpeta Agente.
2. Nos aparecerá una pantalla como se muestra en la figura 1.8, en la
cual nos indica que comenzaremos con la instalación de la aplicación,
para lo cual damos clic en el botón siguiente.
Fig.1.8: Instalación VscanNet Agente
Pág. 12
3. A continuación nos aparece la ventana indicándonos el directorio
donde se instalara la aplicación como se muestra en la figura 1.9 la
cual no se puede cambiar.
Fig.1.9: Instalación Agente VscanNet
Pág. 13
4. Finalmente aparece la pantalla que indica que la instalación de la
aplicación se ha efectuado con éxito y nos advierte que el sistema se
va a reiniciar para que los cambios sean válidos.
Fig. 1.10 : Instalación Agente VscanNet
Pág. 14
2.- PASOS ADICIONALES A LA APLICACIÓN
2.1.- Base de Datos:
Instalación de la Base de Datos SQL 2000, siguiendo los pasos del instalador
del mismo
1. Instalación del Service Pack SQL 2000 (recomendable)
2. Se crea el directorio “C:\VScanNet\DataBase”, en el que se
almacenarán los dos archivos de la base de datos VScanNet:
VScanNet_Data.MDF (datos) y VScanNet_Log.LDF (log de
transacciones)
3. Se ejecutan los scripts de creación de la base que se encuentran en el
directorio “\Procedimientos”, en este orden obligatorio:
a. 1_CreaVScanNet.sql
b. 2_SP_ImpNodo.sql
c. 3_SP_Distribucion.sql
d. 4_PrimerUsuario.sql
Pág. 15
2.2.- Conexión a la Base de Datos:
1. Ir al menú Inicio -> Configuración -> Panel de Control -> Herramientas
Administrativas -> Orígenes de datos ODBC.
2. Se crea la entrada DNS de usuario. Para esto se hace clic en el botón
“Agregar…”
Fig. 1.8: Conexión Base de Datos
Pág. 16
3. Se elige el origen de datos SQL y se hace clic en “Finalizar”
Fig. 1.9: Conexión Base de Datos
Pág. 17
4. En el nombre y descripción de origen de datos de escribe VScanNet,
en servidor se elige el servidor donde se encuentra instalada la base
de datos y se da clic en siguiente.
Fig. 1.10: Conexión Base de Datos
Pág. 18
5. Se elige para la autenticidad del Id de inicio de sesión mediante la
autenticación de SQL Server. Y el usuario de conexión debe ser sa
con la contraseña en blanco (Al igual que en la instalación). Se da clic
en Siguiente
Fig. 1.11 Conexión Base de Datos
Pág. 19
6. Se establece a VScanNet como la base de datos predeterminada y se
da clic en Siguiente
Fig. 1.12: Conexión Base de Datos
Pág. 20
7. En la siguiente ventana, se da clic directamente en Finalizar
Fig. 1.13: Conexión Base de Datos
Pág. 21
8. Se prueba el origen de datos dando clic en el botón “Probar origen de
datos…”. Aceptar en la ventana que se muestra.
Fig. 1.14: Conexión Base de Datos
Pág. 22
Pruebas Efectuadas:
Fig. 1.15: Conexión Base de Datos
Pág. 23
9. Luego “Aceptar” en la ventana de creación del origen de datos
Fig. 1.16: Conexión Base de Datos
Pág. 24
2.3.- Reportes
1. Para los reportes, es necesario instalar Cristal Reports Versión 5.0 o
susperior.
2. Crear la carpeta “\Reportes\” en el mismo directorio donde se
encuentre el ejecutable de la aplicación (generalmente es "C:\Archivos
de programa\VScanNet\)
3. Copiar los reportes desde el directorio “\Reportes\” al creado en el
paso 2.
2.4.- Ayuda
1. Se crea la carpeta “\Help\” en el mismo directorio donde se encuentre
el ejecutable de la aplicación (generalmente es "C:\Archivos de
programa\VScanNet\)
2. Se copia el contenido del directorio “\Help\” al creado en el paso 1
Pág. 25
2.5.- Manifest
Este archivo permite a la aplicación tomar la apariencia del SO en que se
esté ejecutando(XP).
Para ello es necesario copiarlo desde el CD de instalación al mismo
directorio y carpeta donde esté el ejecutable del programa.
El nombre de este archivo será el mismo del ejecutable pero al final se le
añade .manifest.
VscanNet.exe.manifest
Pág. 26
CAPITULO 2
MANUAL DE USUARIO
Pág. 27
VscanNet
Version 1.0
Pág. 28
2.1.-INTRODUCCIÓN
Actualmente en nuestro entorno existen empresas que basan sus negocios
en la velocidad y la calidad de los procesos que se ejecutan en los equipos
que poseen; por ende nace la necesidad de contar con una aplicación que
facilite la visualización gráfica y el control del estado de operación de los
equipos con que cuentan.
Motivo por el cual la aplicación que se describe en las secciones siguientes
plantea brindar una solución que facilite el control y que a través de un
mecanismo flexible y sencillo permita el monitoreo de la red con que cuenta
una empresa cuya infraestructura se encuentre dentro de un entorno de red
basado en la arquitectura TCP/IP.
De esta forma se podrán atacar la ineficiencia e inconvenientes que
conllevan modelos de administración de redes segmentadas y poco
proactivos. Donde los beneficiarios directos serían los grupos de usuarios o
administradores y por ende los Gerentes de IT.
Pág. 29
A veces para poder visualizar el estado de un equipo de una red es
necesario estar físicamente en el, para después ejecutar una serie de
comandos y/o aplicaciones propias del sistema operativo que muestren el
rendimiento del mismo.
La información que se obtiene como resultado de la metodología antes
descrita es importante pero no suficiente y sobre todo en el ámbito visual.
Más aún si lo que se desea es poder conocer el estado operacional e
información general de un host de la red u obtener una visualización general
de la misma para así optimizar el control del los recursos con que cuenta una
red.
De esta forma se presenta una solución que permite visualizar la red luego
de efectuar un descubrimiento en un nivel lógico(Direcciones IP) de la
misma.
A esta aplicación la denominaremos:
VscanNet (Sistema de Escaneo y Visualización de la Red)
Pág. 30
Este sistema consta de 4 Módulos o programas:
VsCanNet Administrador
VscanNet Agente
VscanNet Servidor
VscanNet Descubridor
Pág. 31
VscanNet Agente
Este módulo es el encargado de enviar la información del nodo de red(PC) al
servidor.
El Agente se instalará en cada una de las computadoras de la red y se
activará cada vez que se enciendan y estará ejecutándose hasta que se la
apague.
VscanNet Administrador
Este módulo es la interfaz de usuario del sistema, tiene como función
principal el poder visualizar la red(graficarla), tarea que realiza basándose en
la información que esté almacenada en la base de datos.
VscanNet Servidor
Este módulo tiene como función principal recibir la información proporcionada
por el agente para luego almacenarla en la base de datos.
Pág. 32
VscanNet Descubridor
Este módulo tiene como función principal realizar el descubrimiento de la red
y almacenar los resultados obtenidos en la base de datos.
Como funciones principales de VscanNet tenemos las siguientes:
Escaneo de la red -> Descubrimiento de la Red
Visualización de la red:
Mapa Lógico de la red
Presentación de la información
Alertas
Reportes
En las secciones siguientes se detallan cada una de las opciones que tiene
VscanNet.
Pág. 33
2.2.-FUNCIONES PRINCIPALES
ACCESO AL SISTEMA
Lo primero que aparecerá al ejecutar el sistema será una pantalla de
presentación en la cual se mostrará el nombre de la aplicación.
Fig. 2.1: Presentación del Sistema
Pág. 34
INICIO DE SESIÓN
Luego de la pantalla de presentación del sistema aparecerá la pantalla de
Inicio de Sesión.
Objetivo:
Permitir o denegar el acceso a un usuario al sistema VscanNet.
Fig. 2.2: Inicio de Sesión
Pág. 35
Descripción:
Para poder tener acceso al sistema deberá ingresar el nombre del usuario
y su contraseña.
A un usuario se le negará el acceso en los siguientes casos:
El nombre del usuario no sea el correcto, debido a que esté mal
escrito o este no exista.
Fig. 2.3: Inicio de Sesión
Pág. 36
La contraseña ingresada no sea la correcta, debido a que el usuario
no la recuerde o este mal escrita(si está en mayúsculas y la clave está
en minúscula o viceversa).
Fig. 2.4: Inicio de Sesión
Pág. 37
Para evitar errores al escribir la contraseña el sistema alerta al usuario si el
teclado de mayúsculas está activado.
Fig. 2.5: Inicio de Sesión
Pág. 38
Esta pantalla además de permitir ingresar tanto el nombre del usuario como
su contraseña. Indicará tanto el nombre del PC como la fecha y la hora de
inicio de sesión(Información Inicio de Sesión).
Fig. 2.6: Inicio de Sesión
Pág. 39
VscanNet controla el ingreso de los usuarios de forma que al cuarto intento
fallido de ingreso, el programa se cierra.
Fig. 2.7: Inicio de Sesión
Pág. 40
PANTALLA PRINCIPAL
Cuando Usted ha podido ingresar al sistema aparecerá la Pantalla principal
de VscanNet.
Objetivo:
Permitir al usuario utilizar todas las opciones que ofrece VscanNet.
Descripción:
Esta pantalla costa de:
Barra de Título: Contiene el nombre del Sistema y el nombre del
usuario
Barra de Menú: Contiene las siguientes opciones:
Archivo
Cerrar Sesión
Salir
Pág. 41
Descubrimiento
Iniciar
Mapas de Red
Configuración Inicial
Gráfico de Red
Herramientas
Cmd
Ping
Reportes
Usuarios
Mantenimiento de Usuario
Cambio de Contraseña
Ayuda
Temas de Ayuda
Acerca De...
Pág. 42
Barra de Herramientas: esta contiene accesos directo a las opciones
principales de la barra de menú:
Descubrimiento de Red
Gráfico de Red
D.O.S. (Cmd)
Reportes
Usuarios del Sistema
Ayuda
Cerrar Sesión
Salir de la aplicación
Barra de Estado: esta contiene la siguiente información:
Nombre de la aplicación (VscanNet)
Nombres y Apellidos del Usuario
Nombre del Servidor de la Base de Datos
Pág. 43
Fecha
Hora
Estado de la tecla Bloq. Mayúscula
Estado de la tecla Bloq. Numérico
Fig. 2.9: Pantalla Principal
Pág. 44
PANTALLA PRINCIPAL
1. Archivo
1.1.- Cerrar Sesión
Permite a un usuario salir del sistema e ingresar nuevamente con otro
usuario.
Fig. 2.10: Opción Archivo- Cerrar Sesión
Pág. 45
1.2.- Salir
Permite a un usuario salir de la aplicación.
Cabe mencionar que tanto para cerrar la sesión como para salir del sistema,
es necesario que todas las ventanas de la aplicación estén cerradas, caso
contrario se mostrará el siguiente mensaje.
Fig. 2.11: Opción Archivo- Salir
Pág. 46
2. Descubrimiento
Objetivo:
Permitir descubrir la red en forma lógica; es decir descubrir todas las
direcciones IP de la misma.
Descripción:
Al ejecutar esta opción aparecerá una pantalla donde se ingresará la
dirección de red que se desea descubrir.
Fig. 2.12: Opción Archivo- Salir
Pág. 47
El sistema permite descubrir varias redes en un mismo descubrimiento; para
esto el usuario administrador deberá dar clic en un check box que aparece en
esta opción, donde se indicará que la siguiente red a descubrir pertenece al
mismo descubrimiento.
Esta funcionabilidad permite al administrador escoger que redes van a ser
decubiertas; es decir, si para el descubrimiento inicial(Primer
descubrimiento) el usuario ingresó tres redes de diferentes dominios a
descubrir y habilitó el check box para el sistema todas van a pertenecer a
este descubrimiento.
Dado que si se dá el caso de que un lapso de 2 semanas o menos hubo
algun cambio en el diseño de una de las redes decubiertas, este podrá
ingresar solo la red que tiene los cambios para que los mismos se guarden
en el sistema sin la necesidad de que este descubrimiento represente el
segundo que hiciera el administrador.
Pág. 48
Al momento de ingresar la dirección de red el sistema automáticamente le
asignará la máscara de la misma de acuerdo a su clase.
Fig. 2.13: Opción Descubrimiento
Pág. 49
2.1.- Descubrimiento de Subredes
Otra funcionabidad de VsccanNet es el descubrimiento de subredes. Para
esto el sistema permite al usuario administrador ingresar la máscara de la
subred que desea descubrir
Fig. 2.14: Descubrimiento de subredes
Pág. 50
Posteriormente para iniciar el descubriendo de la red y/o subredes solo se
tendrá que dar clic en el botón Aceptar.
Fig. 2.15: Opción Descubrimiento(mensaje)
Pág. 51
Una vez finalizado este proceso el sistema le indicará mediante un mensaje
que ha concluido el mismo.
Requerimiento de usuario:
Para poder iniciar el descubrimiento de la red es recomendable que estén
encendidas todas las Pc’s que conforman la misma.
Fig. 2.16: Opción Descubrimiento - Terminar
Pág. 52
3. Mapas de Red
Objetivo:
Visualizar el esquema lógico de la red en dos formas: Configuración Inicial
y Gráfico de Red.
Descripción:
3.1. Configuración Inicial
Permite visualizar el esquema lógico de la red encontrada mediante la opción
“Descubrimiento” del sistema.
Fig.2.17: Opción Mapas de Red – Configuración Inicial
Pág. 53
Al ingresar a la opción, esta mostrará automáticamente el esquema de la red
y permite al usuario de guardar el gráfico como un archivo con formato bmp,
jpg o gif.
Fig. 2.18: Opción Mapas de Red – Configuración Inicial-Guardar
Pág. 54
3.2. Gráfico de Red
Permite visualizar el esquema lógico de la red en una fecha y hora
determinadas. Existen dos tipos de gráfico de red: Histórico y Actual.
Para el gráfico Histórico el usuario debe ingresar la fecha y hora que desee
visualizar la red. Para el gráfico actual se tomará automáticamente la fecha
y hora actual del sistema.
El gráfico de la red se muestra simulando la interfaz del Explorador de
Windows. Del lado izquierdo, tenemos el árbol jerárquico de la red. Como
nodo raíz se muestra la red, este nombre puede ser editado por el usuario.
Fig. 2.19: Opción Mapas de Red – Grafico de Red /Actual
Pág. 55
El segundo nivel de jerarquía corresponde a las subredes, y el tercer nivel a
los equipos pertenecientes a su respectiva subred. Estos dos niveles no
pueden ser editados.
Fig. 2.20: Opción Mapas de Red – Grafico de Red /Actual
Pág. 56
Al hacer clic en cualquier nodo del árbol, en el lado derecho de la aplicación
se mostrará automáticamente el grafico que corresponde al nodo elegido de
acuerdo al siguiente esquema:
Al hacer clic en el nodo raíz, se graficará el contenido completo de la
red
Al hacer clic en la subred, se graficarán los equipos de esa subred
Al hacer clic en el nodo hijo, se graficará el equipo respectivo
Fig. 2.21: Opción Mapas de Red – Grafico de Red
Pág. 57
Al hacer clic derecho sobre un nodo de la red, es sistema muestra un menú
contextual que mostrará las propiedades del nodo elegido. Al elegir ésta
opción, se abrirá la ventana de propiedades
Fig. 2.22: Opción Mapas de Red – Grafico de Red/ Propiedades
Pág. 58
La ventana de propiedades, muestra una lista de las principales
características del equipo señalado, como son:
Propiedades Generales
Nombre del Nodo
Estado
Dirección IP
Dirección de Red
Máscara de Red
Gateway
Clase
Pág. 59
Sistema Operativo
Nombre
Versión del S.O.
Fig. 2.23: Opción Mapas de Red – Grafico de Red/ Propiedades/ Generales
Pág. 60
Procesador
Nombre
Porcentaje de Uso
Un grafico de barra del porcentaje de uso del procesador
Fig. 2.24: Opción Mapas de Red – Grafico de Red/ Propiedades/S.O
Pág. 61
Discos Duros
Unidad
Serie
Serie
Tamaño Total
Fig. 2.25: Opción Mapas de Red – Grafico de Red/ Propiedades/ Procesador
Pág. 62
Tamaño Disponible
Un grafico de pastel del espacio libre del disco versus el espacio
disponible
Memoria
Memoria Física Total
Memoria Física Disponible
Fig. 2.26: Opción Mapas de Red – Grafico de Red/ Propiedades/ HD
Pág. 63
Memoria Virtual Total
Memoria Virtual Disponible
Memoria Cargada
Un grafico de pastel de la memoria física libre versus memoria física
disponible
Fig. 2.27: Opción Mapas de Red – Grafico de Red/ Propiedades/ Memoria
Pág. 64
Red
Tipo de Tarjeta de Red
Dirección Física
Paquetes Recibidos
Paquetes Perdidos
Paquetes Enviados
Nombre del Enlace
Velocidad del Enlace
Fig. 2.28: Opción Mapas de Red – Grafico de Red/ Propiedades/ Tarjetas
Pág. 65
Procesos
Id del Proceso
Nombre del Proceso
Fig. 2.29: Opción Mapas de Red – Grafico de Red/ Propiedades/ Procesos
Pág. 66
VscanNet también permite visualizar el estado de un nodo mediante el uso
de un código de colores:
Verde – Normal – el nodo responde normalmente al monitoreo y
está funcionando correctamente.
Amarillo – Advertencia – indica un estado de alerta. Puede
darse cuando los nodos monitoreados presentan problemas en capacidad de
memoria, procesador o discos duros
Gris– Apagado – el nodo esta apagado y no responde al
monitoreo, o no tiene instalado el agente.
Azul– Nuevo – nodo agregado a la red y responde normalmente al
monitoreo.
Pág. 67
4. Herramientas
Objetivo:
Permite tener a la mano tres herramientas muy usadas para el monitoreo
y visualización del estado de la red. Herramientas tales como:
Fig. 2.30: Opción Mapas de Red – Grafico de Red
Fig. 2.30: Opción Mapas de Red – Grafico de Red/ Propiedades
Pág. 68
Cmd (DOS)
Ping
Reportes
Descripción:
4.1. Cmd
Esta opción abre la ventana de comandos (DOS) de Windows.
Fig. 2.31: Opción Herramientas - Cmd
Pág. 69
4.2. Ping
Permite realizar el comando ping a una dirección de red especificada por el
usuario. Ésta debe ser una dirección IP correcta
Al hacer clic en el botón ping, la ventana mostrara los resultados del
comando en las cajas de texto de la parte inferior
Fig. 2.31: Opción Herramientas - Ping
Pág. 70
4.3. Reportes
Permite visualizar, guardar e imprimir reportes de subredes y nodos, por lo
tanto, existen dos tipos de informes:
Por Nodo
Por Red
A su vez los reportes permiten dos tipos de acción:
Visualización por pantalla
Mandar a Impresora
Fig. 2.32: Opción Herramientas - Reportes
Pág. 71
4.3.1. Reportes por Nodo
Esta opción nos permite obtener un reporte de las principales propiedades
del nodo:
Propiedades Generales (Nodo)
Memoria
Procesadores
Sistemas Operativos
Discos Duros
Interfaces de Red
Paquetes
Procesos ejecutándose
El usuario debe ingresar la dirección IP correcta, la fecha y hora y el tipo de
reporte.
Pág. 72
Fig. 2.33: Opción Herramientas – Reportes Por Nodo
Fig. 2.34 : Opción Herramientas – Reportes Por Nodo
Pág. 73
4.3.2. Reportes por Red
Esta opción nos permite obtener un reporte de todas las direcciones IP que
se encuentran en una dirección de red especificada.
Para esta opción, el usuario debe ingresar solamente la dirección de red
correcta.
Fig. 2.35: Opción Herramientas – Reportes Por Red
Pág. 74
Fig. 2.36 : Opción Herramientas – Reportes Por Red
Pág. 75
Además de poder visualizar por pantalla el reporte, VscanNet permite
imprimir los reportes.
Fig. 2.37 : Opción Herramientas – Reportes - Imprimir
Pág. 76
5. Usuarios
Objetivo:
Permite hacer un mantenimiento de los usuarios que accesan al sistema
Descripción:
5.1. Mantenimiento de Usuarios
Esta opción permite realizar las siguientes acciones:
Nuevo usuario(crearlo)
Buscar usuarios
Eliminar usuarios
Guardar cambios
Actualización de usuarios
Pág. 77
Cada usuario tiene los siguientes datos:
Usuario
Contraseña
Hora de Ingreso
Hora de Salida
Número de Cédula
Nombres
Apellidos
Teléfono
Tipo de usuario
La hora de ingreso y salida del sistema se refiere que momento del día el
usuario puede ingresar al sistema. El tipo de usuario (Administrador o
Restringido) permite diferenciar a los mismos. El usuario restringido no tiene
acceso al Mantenimiento de Usuarios
Los datos que No pueden ser modificados son:
El usuario
La cédula
La contraseña
Pág. 79
5.1.1. Búsqueda de Usuario
Por medio de esta opción, el usuario puede buscar usuarios para darles el
respectivo mantenimiento.
Fig. 2.38 : Usuarios – Mantenimiento de Usuarios
Pág. 80
Puede buscar de dos formas. Si la opción “Todos los Usuarios” se encuentra
activada, al hacer clic en el botón Buscar, se presentará en la parte inferior
de la ventana, una lista de todos los usuarios con sus características mas
requeridas:
Cédula
Usuario
Nombre
Apellido
Fig. 2.39 : Usuarios – Mantenimiento de Usuarios / Buscar
Pág. 81
Si la opción “Todos los Usuarios” no se encuentra activada, se puede hacer
la búsqueda de acuerdo a cuatro criterios de búsqueda:
Por cédula
Por usuario
Por nombre
Por apellido
Y de acuerdo a cuatro tipos de búsqueda:
Igual
Comience con
Contenga
No contenga
El criterio de búsqueda se lo hace conjuntamente con la clave de búsqueda,
que se ingresa en la caja de texto “Búsqueda”, por ejemplo, para buscar
todos los usuarios cuyos nombre comiencen con la letra “G”, se escoge
“Nombre” en Criterio de Búsqueda, “Comience con” en Tipo de Búsqueda y
la letra g (no importa si es mayúscula o minúscula) en la caja de texto
Búsqueda.
Pág. 82
Fig. 2.40 : Usuarios – Mantenimiento de Usuarios / Buscar
Fig. 2.41 : Usuarios – Mantenimiento de Usuarios / Buscar
Pág. 83
Fig. 2.42 : Usuarios – Mantenimiento de Usuarios / Buscar
Pág. 84
5.1.2 Crear Usuario
Esta opción permite la creación de un nuevo usuario para que tenga acceso
al sistema. Está creación se basará de acuerdo a los parámetros
anteriormente descritos.
Fig. 2.43 : Usuarios – Mantenimiento de Usuarios / Nuevo Usuario
Pág. 85
5.1.3 Actualizar Usuario
Esta opción permite modificar la información de un usuario si el caso lo
amerita. Para poder actualizar un usuario previamente debe buscarlo por
medio de la opción “Buscar” del sistema.
Fig. 2.44 : Usuarios – Mantenimiento de Usuarios / Actualizar
Pág. 86
Fig. 2.45 : Usuarios – Mantenimiento de Usuarios / Actualizar
Fig. 2.46 : Usuarios – Mantenimiento de Usuarios / Actualizar
Pág. 87
5.1.4 Eliminar Usuario
Esta opción permite eliminar los usuarios que ya no tendrán acceso al
sistema.
5.1.5 Guardar modificaciones
Esta opción permite guardar todos los cambios que se hayan realizado.
5.2. Cambio de Contraseña
Esta opción permite actualizar la contraseña del usuario. Esta opción permite
solamente cambiar su propia contraseña
Pág. 88
Fig. 2.47 : Usuarios – Cambio de Contraseña
Pág. 89
Para hacer el cambio, se debe ingresar primeramente la actual contraseña,
luego la nueva y su confirmación. Así mismo el sistema solicita al usuario una
confirmación de la acción a realizar.
Fig. 2.48: Usuarios – Cambio de Contraseña
Fig. 2.49 : Usuarios – Cambio de Contraseña
Pág. 90
La contraseña no se actualizará por las siguientes causas:
La contraseña actual no corresponde al usuario actual
La contraseña actual es igual a la nueva contraseña
La contraseña nueva y su confirmación no las mismas
La contraseña nueva tiene menos de 4 caracteres
Fig. 2.50: Usuarios – Cambio de Contraseña
Pág. 91
6. Ayuda
Objetivo:
Permite visualizar la ayuda del sistema y un cuadro de dialogo acerca de.
Descripción:
Fig. 2.51 : Usuarios – Cambio de Contraseña
Pág. 92
6.1. Temas de Ayuda
Esta opción muestra en pantalla la ayuda del sistema. También es posible
visualizarla pulsando la tecla F1.
Fig. 2.52 : Ayuda VscanNet
Pág. 93
6.2. Acerca De
Esta opción muestra en un cuadro de dialogo con los realizadores del
sistema y la opción de Información del Sistema (Windows).
Fig. 2.52 : Ayuda – Acerca De
Pág. 94
2.3.-REQUERIMIENTOS DEL SISTEMA
En el caso de que VscanNet se vaya instalar en una sola máquina se
requiere de:
Requisitos de Sistema
Mínimos
Requisitos de Sistema
Recomendados
Procesador
Intel Pentium o compatible 1 GHz
Intel Pentium 3.0 GHz o superior
Memoria
512 MB de RAM 1 GB de RAM
Hard Disk:
30 GB 80 GB
Display:
Super VGA(1024 x 768) High Color
Super VGA(1280x 1024 pixels) color 24 bits
Sistema Operativo:
Windows 2000
Windows Xp
Windows 2000 Server
Windows 2003 Server
Pág. 95
Plataforma de Monitoreo y Protocolos
Windows NT/2000/XP
TCP/IP
Requerimientos de Software
Microsoft SQL 2000 Server
Crystal Reports 5.0 ó superior
JDK – Máquina Virtual de Java
Internet Explorer 5.5 ó superior
WinPcap 3.1 o superior
PpacketX 3.0 o superior
Pág. 96
En el caso de se disponga con Pc’s distribuidas para cada módulo de
VscanNet, se requiere de:
Servidor VscanNet
Requisitos de Sistema
Mínimos
Requisitos de Sistema
Recomendados
Procesador
Intel Pentium o compatible 1 GHz
Intel Pentium 3.0 GHz o superior
Memoria
256 MB de RAM 512 MB de RAM
Hard Disk:
10 GB 20 GB
Sistema Operativo:
Windows 2000
Windows Xp
Windows 2000 Server
Windows 2003 Server
Pág. 97
Plataforma de Monitoreo y Protocolos
Windows NT/2000/XP
TCP/IP
Requerimiento de Software
JDK – Máquina Virtual de Java
Pág. 98
Administrador VscanNet
Requisitos de Sistema
Mínimos
Requisitos de Sistema
Recomendados
Procesador
Intel Pentium o compatible 1 GHz
Intel Pentium 3.0 GHz o superior
Memoria
512 MB de RAM 1 GB de RAM
Hard Disk:
20 GB 40GB
Display:
Super VGA(1024 x 768) High Color
Super VGA(1280x 1024 pixels) color 24 bits
Sistema Operativo:
Windows 2000
Windows Xp
Windows 2000 Server
Windows 2003 Server
Pág. 99
Plataforma de Monitoreo y Protocolos
Windows NT/2000/XP
TCP/IP
Requerimiento de Software
Crystal Reports 5.0 ó superior
Internet Explorer 5.5 ó superior
Pág. 100
Agente VscanNet
Requisitos de Sistema
Mínimos
Requisitos de Sistema
Recomendados
Procesador
Intel Pentium o compatible 1 GHz
Intel Pentium 3.0 GHz o superior
Memoria
128 MB de RAM 256 MB de RAM
Hard Disk:
10 GB 20 GB
Sistema Operativo:
Windows 98
Windows XP
Windows NT o superior
Pág. 101
Plataforma de Monitoreo y Protocolos
Windows 98/NT/2000/XP
TCP/IP
Requerimiento de Software
WinPcap 3.1 o superior
PpacketX 3.0 o superior
Pág. 102
Descubridor VscanNet
Requisitos de Sistema
Mínimos
Requisitos de Sistema
Recomendados
Procesador
Intel Pentium o compatible 1 GHz
Intel Pentium 3.0 GHz o superior
Memoria
128 MB de RAM 256 MB de RAM
Hard Disk:
10 GB 20 GB
Sistema Operativo:
Windows 98
Windows XP
Windows NT o superior
Pág. 103
Plataforma de Monitoreo y Protocolos
Windows 98/NT/2000/XP
TCP/IP
Pág. 104
CAPITULO 3
MANUAL TÉCNICO
Pág. 105
3.1.- Diagramas
A continuación se detalla cada uno de los diagramas que conforman el
desarrollo del sistema.
Pág. 106
3.1.1.-Árbol de problemas
C A U S A
S
E F E C T O S
Falta de optimización de los activos
existentes
Decremento en la
eficiencia
Pérdida de la
inversión
Decremento en la
productividad
PÉRDIDA DE TIEMPO
FALTA DE AUTOMATIZACION
No contar con una interfaz gráfica
amigable
Complicado acceso a la
información de la red
Estar físicamente en el equipo para
ejecutar comandos y / o aplicaciones
Pág. 107
3.1.2.-Árbol de Objetivos
Visión más integral detallada
y sencilla de la infraestructura de
red
Toma De decisiones más acertadas debido
a inf. de los activos de red
Mayor eficiencia /mejor interacción entre personal
e infraestructura
Mejor acceso y control a los recursos
de red
Incremento en la
productividad
Fácil Acceso a información de la
red sin previa personalización
CONTROL
Pág. 108
3.1.3.- Diagrama Flujo de Datos
Figura 3.1: Diagrama Flujo de Datos
Pág. 109
Figura 3.2: Diagrama Entidad Relación
USUARIO
INF_INICIAL
INTERFACES_RED
INF_PROCESS INF_UNIDADES_HD INF_MEMORIA
NODO
PROC_EJEC
INF_SO
3.1.4.- Diagrama Entidad Relación
Pág. 110
Figura 3.3: Especificación de Objetos
Pág. 111
3.1.5.- Arquitectura de VscanNet
VscanNet
Descubridor Servidor Administrador
Recibe Dirección
de red Y Mascara
Procesa Dir de Red Y Máscara
Obtiene todas las Ip
posibles de la red
Realiza el descubrimiento de red a través de un broadcast y guarda en la tabla inicial las direcciones que han
respondido
Ingreso al
Sistema
Grafica la red mediante
información de la BD
Recibe información del
Agente
Procesa información enviada por cada
agente y la almacena en la BD
Obtiene información
del nodo
Envío de información al servidor cada cierto tiempo
Envío de datos al descubridor
Generación e impresión de reportes de
nodos y de red
Control y procesamiento de los usuarios
de acceso al sistema
Provee herramientas
para facilitar el diagnóstico de
la red
Agente
Pág. 112
3.1.6.- Arquitectura VscanNet Administrador
3.1.6.1.- Ingreso al Sistema
N
S S
N
Ingreso de datos
Usuario Contraseña
Consultar BD
Carga de
aplicación
principal
Intento de ingreso = 4
Información válida
Cerrar Sistema
Pág. 113
3.1.6.2.- Envío de Datos al Descubridor
Ingreso de IP por el usuario
Ingreso de IP por el usuario
Cálculo automático de Máscara
Envío de datos al
descubridor
S
IP Correcta
N
Pág. 114
3.1.6.3.- Graficar Red
N
S
N
Opción Mapa de
red
Configuración Inicial
Verificar y obtener datos
de la tabla inicial
Dibujar Mapa de Red Conf.
Inicial
VscanNet
Gráfico actual
Fecha y Hora actual
Procesamient de
información
Fecha y Hora
Ingresada por Usuario
S
Dibujar Mapa de
Red
Pág. 115
3.1.6.7.- Arquitectura VscanNet Servidor
Si
No
Esperar Paquete (PIR)
Cliente
Fraccionar Datos principales
Paquete (PIR)
Si
NO
Escuchar Por Puerto
3333
C
DatagramSocket
Activar
Ha llegado Paquete
(PIR)
Cabecera =
RIN
A
Pág. 116
N
S
N
Si
A
Organiza la Información
Paquete (PIR)
En la B.D
Existe datos en la tabla
Inicial
B
BD
Fecha_Ultima_Almacenada = Fecha Actual
AND Hora_Ultma_Almac < 10 minutos
Actualizar Datos Insertar Datos
Finalizar análisis del paquete
(PIR)
B
C
Pág. 117
3.1.6.8.- Arquitectura VscanNet Descubridor
Pág. 118
3.1.6.9.- Arquitectura VscanNet Agente
Pág. 119
3.2.- Creación del Script
Script de creación de la base de datos, las tablas y sus relaciones
Se crea la base de datos en el directorio C:\VScanNet\DataBase:
IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'VScanNet')
DROP DATABASE [VScanNet]
GO
CREATE DATABASE [VScanNet] ON (NAME = N'VScanNet_Data', FILENAME = N'C:\VScanNet\DataBase\VScanNet_Data.MDF' , SIZE = 2, FILEGROWTH = 10%) LOG ON (NAME = N'VScanNet_Log', FILENAME = N'C:\VScanNet\DataBase\VScanNet_Log.LDF' , SIZE = 10, FILEGROWTH = 10%)
COLLATE Modern_Spanish_CI_AS
GO
Figura 3.4: Creación de la Base de Datos
Pág. 120
Se crean las opciones por defecto de la base:
exec sp_dboption N'VScanNet', N'autoclose', N'false' GO exec sp_dboption N'VScanNet', N'bulkcopy', N'false' GO exec sp_dboption N'VScanNet', N'trunc. log', N'false' GO exec sp_dboption N'VScanNet', N'torn page detection', N'true' GO exec sp_dboption N'VScanNet', N'read only', N'false' GO exec sp_dboption N'VScanNet', N'dbo use', N'false' GO exec sp_dboption N'VScanNet', N'single', N'false' GO exec sp_dboption N'VScanNet', N'autoshrink', N'false' GO exec sp_dboption N'VScanNet', N'ANSI null default', N'false' GO exec sp_dboption N'VScanNet', N'recursive triggers', N'false' GO exec sp_dboption N'VScanNet', N'ANSI nulls', N'false' GO exec sp_dboption N'VScanNet', N'concat null yields null', N'false' GO exec sp_dboption N'VScanNet', N'cursor close on commit', N'false' GO exec sp_dboption N'VScanNet', N'default to local cursor', N'false' GO exec sp_dboption N'VScanNet', N'quoted identifier', N'false' GO exec sp_dboption N'VScanNet', N'ANSI warnings', N'false' GO exec sp_dboption N'VScanNet', N'auto create statistics', N'true' GO exec sp_dboption N'VScanNet', N'auto update statistics', N'true' GO use [VScanNet] GO
Figura 3.5: Creación opciones por defecto de la Base de datos
Pág. 121
Se eliminan las relaciones (claves foráneas) si éstas existen:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_INF_MEMORIA_NODO]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[INF_MEMORIA] DROP CONSTRAINT FK_INF_MEMORIA_NODO GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_INF_PROCESS_NODO]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[INF_PROCESS] DROP CONSTRAINT FK_INF_PROCESS_NODO GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_INF_SO_NODO]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[INF_SO] DROP CONSTRAINT FK_INF_SO_NODO GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_INF_UNIDADES_HD_NODO]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[INF_UNIDADES_HD] DROP CONSTRAINT FK_INF_UNIDADES_HD_NODO GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_INTERFACES_RED_NODO]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[INTERFACES_RED] DROP CONSTRAINT FK_INTERFACES_RED_NODO GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_PAQUETES_NODO]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[PAQUETES] DROP CONSTRAINT FK_PAQUETES_NODO GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_PROC_EJEC_NODO]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[PROC_EJEC] DROP CONSTRAINT FK_PROC_EJEC_NODO GO
Figura 3.6: Eliminación de las relaciones si existen
Pág. 122
Se eliminan las tablas si éstas existen:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ALERTAS]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[ALERTAS] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[INF_INICIAL]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[INF_INICIAL] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[INF_MEMORIA]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[INF_MEMORIA] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[INF_PROCESS]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[INF_PROCESS] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[INF_SO]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[INF_SO] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[INF_UNIDADES_HD]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[INF_UNIDADES_HD] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[INTERFACES_RED]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[INTERFACES_RED] GO Figura 3.7: Eliminación de tablas si existen
Pág. 123
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[NODO]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[NODO] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PAQUETES]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[PAQUETES] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PROC_EJEC]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[PROC_EJEC] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TMP_INF_INICIAL]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TMP_INF_INICIAL] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TMP_INF_MEMORIA]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TMP_INF_MEMORIA] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TMP_INF_PROCESS]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TMP_INF_PROCESS] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TMP_INF_SO]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TMP_INF_SO] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TMP_INF_UNIDADES_HD]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TMP_INF_UNIDADES_HD] GO Figura 3.8: Eliminación de tablas si existen
Pág. 124
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TMP_INTERFACES_RED]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TMP_INTERFACES_RED] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TMP_NODO]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TMP_NODO] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TMP_PAQUETES]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TMP_PAQUETES] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TMP_PROC_EJEC]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TMP_PROC_EJEC] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[USUARIO]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[USUARIO] GO
Figura 3.9: Eliminación de tablas si existen
Pág. 125
Se crean las tablas:
CREATE TABLE [dbo].[ALERTAS] ( [Dir_Ip] [varchar] (15) COLLATE Modern_Spanish_CI_AS NOT NULL , [Usuario_Nodo] [varchar] (15) COLLATE Modern_Spanish_CI_AS NOT NULL , [Fecha] [datetime] NOT NULL , [Codigo] [char] (1) COLLATE Modern_Spanish_CI_AS NOT NULL , [Hora] [datetime] NOT NULL , [Descripcion] [varchar] (50) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[INF_INICIAL] ( [Dir_Ip] [varchar] (15) COLLATE Modern_Spanish_CI_AS NOT NULL , [Dir_Red] [varchar] (15) COLLATE Modern_Spanish_CI_AS NOT NULL , [Mascara] [varchar] (15) COLLATE Modern_Spanish_CI_AS NOT NULL , [Id_Histo] [int] NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[INF_MEMORIA] ( [Id_Nodo] [int] NOT NULL , [Mem_Fis_Tot] [varchar] (50) COLLATE Modern_Spanish_CI_AS NOT NULL , [Mem_Fis_Disp] [varchar] (50) COLLATE Modern_Spanish_CI_AS NOT NULL , [Mem_Vir_Tot] [varchar] (50) COLLATE Modern_Spanish_CI_AS NOT NULL , [Mem_Vir_Disp] [varchar] (50) COLLATE Modern_Spanish_CI_AS NOT NULL , [Mem_Cargada] [varchar] (50) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[INF_PROCESS] ( [Id_Nodo] [int] NOT NULL , [Nombre] [varchar] (50) COLLATE Modern_Spanish_CI_AS NOT NULL , [Porcentaje_Ocupado] [varchar] (50) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO
Figura 3.10: Creación de tablas
Pág. 126
CREATE TABLE [dbo].[INF_SO] ( [Id_Nodo] [int] NOT NULL , [Nombre] [varchar] (20) COLLATE Modern_Spanish_CI_AS NOT NULL , [Version] [varchar] (10) COLLATE Modern_Spanish_CI_AS NOT NULL , [Usuario] [varchar] (15) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[INF_UNIDADES_HD] ( [Id_Nodo] [int] NOT NULL , [Volumen] [varchar] (15) COLLATE Modern_Spanish_CI_AS NOT NULL , [Serie] [varchar] (10) COLLATE Modern_Spanish_CI_AS NOT NULL , [Tamano_Total] [varchar] (50) COLLATE Modern_Spanish_CI_AS NOT NULL , [Tamano_Disponible] [varchar] (50) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[INTERFACES_RED] ( [Id_Nodo] [int] NOT NULL , [Descripcion] [varchar] (100) COLLATE Modern_Spanish_CI_AS NOT NULL , [Direccion_Fisica] [varchar] (15) COLLATE Modern_Spanish_CI_AS NOT NULL , [Paq_Recibidos] [int] NOT NULL , [Paq_Perdidos] [int] NOT NULL , [Nombre_Enlace] [varchar] (20) COLLATE Modern_Spanish_CI_AS NOT NULL , [Velocidad_Enlace] [varchar] (20) COLLATE Modern_Spanish_CI_AS NOT NULL , [Paq_Enviados] [int] NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[NODO] ( [Id_Nodo] [int] IDENTITY (1, 1) NOT NULL , [Dir_Ip] [varchar] (15) COLLATE Modern_Spanish_CI_AS NOT NULL , [Dir_Red] [varchar] (15) COLLATE Modern_Spanish_CI_AS NOT NULL , [Mascara] [varchar] (15) COLLATE Modern_Spanish_CI_AS NOT NULL , [Nombre] [varchar] (50) COLLATE Modern_Spanish_CI_AS NOT NULL , [Clase] [char] (1) COLLATE Modern_Spanish_CI_AS NOT NULL , [Gateway] [varchar] (15) COLLATE Modern_Spanish_CI_AS NOT NULL , [Estado] [int] NOT NULL , [Id_Histo] [int] NOT NULL , [Fecha] [varchar] (10) COLLATE Modern_Spanish_CI_AS NOT NULL , [Hora] [varchar] (8) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO
Figura 3.11: Creación de tablas
Pág. 127
CREATE TABLE [dbo].[PAQUETES] ( [Id_Nodo] [int] NOT NULL , [Nombre] [varchar] (20) COLLATE Modern_Spanish_CI_AS NOT NULL , [Cant_Recibidos] [int] NOT NULL , [Cant_Enviados] [int] NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[PROC_EJEC] ( [Id_Nodo] [int] NOT NULL , [Id_Proceso] [int] NOT NULL , [Nombre_Proceso] [varchar] (25) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TMP_INF_INICIAL] ( [Dir_Red] [varchar] (15) COLLATE Modern_Spanish_CI_AS NOT NULL , [Dir_Ip] [varchar] (15) COLLATE Modern_Spanish_CI_AS NOT NULL , [Clase] [char] (1) COLLATE Modern_Spanish_CI_AS NOT NULL , [Mascara] [varchar] (15) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TMP_INF_MEMORIA] ( [Id_TMP_NODO] [int] NOT NULL , [Mem_Fis_Tot] [varchar] (50) COLLATE Modern_Spanish_CI_AS NOT NULL , [Mem_Fis_Disp] [varchar] (50) COLLATE Modern_Spanish_CI_AS NOT NULL , [Mem_Vir_Tot] [varchar] (50) COLLATE Modern_Spanish_CI_AS NOT NULL , [Mem_Vir_Disp] [varchar] (50) COLLATE Modern_Spanish_CI_AS NOT NULL , [Mem_Cargada] [varchar] (50) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO
Figura 3.12: Creación de tablas
Pág. 128
CREATE TABLE [dbo].[TMP_INF_PROCESS] ( [Id_TMP_NODO] [int] NOT NULL , [Nombre] [varchar] (50) COLLATE Modern_Spanish_CI_AS NOT NULL , [Porcentaje_Ocupado] [varchar] (50) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO ar] (50) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO
CREATE TABLE [dbo].[TMP_INF_SO] ( [Id_TMP_NODO] [int] NOT NULL , [Nombre] [varchar] (20) COLLATE Modern_Spanish_CI_AS NOT NULL , [Version] [varchar] (10) COLLATE Modern_Spanish_CI_AS NOT NULL , [Usuario] [varchar] (15) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TMP_INF_UNIDADES_HD] ( [Id_TMP_NODO] [int] NOT NULL , [Volumen] [varchar] (15) COLLATE Modern_Spanish_CI_AS NOT NULL , [Serie] [varchar] (10) COLLATE Modern_Spanish_CI_AS NOT NULL , [Tamano_Total] [varchar] (50) COLLATE Modern_Spanish_CI_AS NOT NULL , [Tamano_Disponible] [varchar] (50) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TMP_INTERFACES_RED] ( [Id_TMP_NODO] [int] NOT NULL , [Descripcion] [varchar] (100) COLLATE Modern_Spanish_CI_AS NOT NULL , [Direccion_Fisica] [varchar] (15) COLLATE Modern_Spanish_CI_AS NOT NULL , [Paq_Recibidos] [int] NOT NULL , [Paq_Perdidos] [int] NOT NULL , [Nombre_Enlace] [varchar] (20) COLLATE Modern_Spanish_CI_AS NOT NULL , [Velocidad_Enlace] [varchar] (20) COLLATE Modern_Spanish_CI_AS NOT NULL , [Paq_Enviados] [int] NOT NULL ) ON [PRIMARY] GO Figura 3.13: Creación de tablas temporales
Pág. 129
CREATE TABLE [dbo].[TMP_NODO] ( [Id_TMP_NODO] [int] NOT NULL , [Dir_Ip] [varchar] (15) COLLATE Modern_Spanish_CI_AS NOT NULL , [Dir_Red] [varchar] (15) COLLATE Modern_Spanish_CI_AS NOT NULL , [Mascara] [varchar] (15) COLLATE Modern_Spanish_CI_AS NOT NULL , [Nombre] [varchar] (50) COLLATE Modern_Spanish_CI_AS NOT NULL , [Clase] [char] (1) COLLATE Modern_Spanish_CI_AS NOT NULL , [Gateway] [varchar] (15) COLLATE Modern_Spanish_CI_AS NOT NULL , [Estado] [int] NOT NULL , [Id_Histo] [int] NOT NULL , [Fecha] [varchar] (10) COLLATE Modern_Spanish_CI_AS NOT NULL , [Hora] [varchar] (8) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TMP_PAQUETES] ( [Id_TMP_NODO] [int] NOT NULL , [Nombre] [varchar] (20) COLLATE Modern_Spanish_CI_AS NOT NULL , [Cant_Recibidos] [int] NOT NULL , [Cant_Enviados] [int] NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TMP_PROC_EJEC] ( [Id_TMP_NODO] [int] NOT NULL , [Id_Proceso] [int] NOT NULL , [Nombre_Proceso] [varchar] (25) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[USUARIO] ( [Usuario] [varchar] (15) COLLATE Modern_Spanish_CI_AS NOT NULL , [Cedula] [varchar] (10) COLLATE Modern_Spanish_CI_AS NOT NULL , [Contrasena] [varchar] (40) COLLATE Modern_Spanish_CI_AS NOT NULL , [Ini_Turno] [datetime] NOT NULL , [Fin_Turno] [datetime] NOT NULL , [Nombres] [varchar] (20) COLLATE Modern_Spanish_CI_AS NOT NULL , [Apellidos] [varchar] (20) COLLATE Modern_Spanish_CI_AS NOT NULL , [Telefono] [varchar] (10) COLLATE Modern_Spanish_CI_AS NOT NULL , [Status] [char] (1) COLLATE Modern_Spanish_CI_AS NOT NULL ) ON [PRIMARY] GO
Figura 3.14: Creación de tablas temperales
Pág. 130
Se crean las relaciones (claves foráneas):
ALTER TABLE [dbo].[INF_INICIAL] WITH NOCHECK ADD CONSTRAINT [PK_INF_INICIAL] PRIMARY KEY CLUSTERED ( [Dir_Ip], [Id_Histo] ) ON [PRIMARY] GO ALTER TABLE [dbo].[NODO] WITH NOCHECK ADD CONSTRAINT [PK_NODO] PRIMARY KEY CLUSTERED ( [Id_Nodo] ) ON [PRIMARY] GO ALTER TABLE [dbo].[USUARIO] WITH NOCHECK ADD CONSTRAINT [PK_USUARIO] PRIMARY KEY CLUSTERED ( [Usuario] ) ON [PRIMARY] GO ALTER TABLE [dbo].[INF_MEMORIA] ADD CONSTRAINT [FK_INF_MEMORIA_NODO] FOREIGN KEY ( [Id_Nodo] ) REFERENCES [dbo].[NODO] ( [Id_Nodo] ) GO ALTER TABLE [dbo].[INF_PROCESS] ADD CONSTRAINT [FK_INF_PROCESS_NODO] FOREIGN KEY ( [Id_Nodo] ) REFERENCES [dbo].[NODO] ( [Id_Nodo] ) GO
Figura. 3.15: Creación de relaciones
Pág. 131
ALTER TABLE [dbo].[INF_SO] ADD CONSTRAINT [FK_INF_SO_NODO] FOREIGN KEY ( [Id_Nodo] ) REFERENCES [dbo].[NODO] ( [Id_Nodo] ) GO ALTER TABLE [dbo].[INF_UNIDADES_HD] ADD CONSTRAINT [FK_INF_UNIDADES_HD_NODO] FOREIGN KEY ( [Id_Nodo] ) REFERENCES [dbo].[NODO] ( [Id_Nodo] ) GO ALTER TABLE [dbo].[INTERFACES_RED] ADD CONSTRAINT [FK_INTERFACES_RED_NODO] FOREIGN KEY ( [Id_Nodo] ) REFERENCES [dbo].[NODO] ( [Id_Nodo] ) GO ALTER TABLE [dbo].[PAQUETES] ADD CONSTRAINT [FK_PAQUETES_NODO] FOREIGN KEY ( [Id_Nodo] ) REFERENCES [dbo].[NODO] ( [Id_Nodo] ) GO ALTER TABLE [dbo].[PROC_EJEC] ADD CONSTRAINT [FK_PROC_EJEC_NODO] FOREIGN KEY ( [Id_Nodo] ) REFERENCES [dbo].[NODO] ( [Id_Nodo] ) GO
Figura 3.16: Creación de relaciones
Pág. 132
Script de creación de los procedimientos
Procedimiento almacenado SP_ImpNodo:
CREATE PROCEDURE dbo.SP_IMPNODO ( @Id_Nodo AS INT, @Tipo AS CHAR(3), @Id_Histo AS INT, @Dir_Red AS CHAR(15), @Clase AS CHAR(1) ) AS SET NOCOUNT ON IF LTRIM(RTRIM(@Tipo)) = 'NOD' BEGIN -- BORRA LA INFORMACION BASURA DE LAS TEMPORALES TRUNCATE TABLE TMP_NODO TRUNCATE TABLE TMP_INF_MEMORIA TRUNCATE TABLE TMP_INF_PROCESS TRUNCATE TABLE TMP_INF_SO TRUNCATE TABLE TMP_INF_UNIDADES_HD TRUNCATE TABLE TMP_INTERFACES_RED TRUNCATE TABLE TMP_PAQUETES TRUNCATE TABLE TMP_PROC_EJEC -- GUARDA EN TABLAS TEMPORALES RESPECTIVAS INSERT INTO TMP_NODO (Id_TMP_NODO, Dir_Ip, Dir_Red, Mascara, Nombre, Clase, Gateway, Estado, Id_Histo, Fecha, Hora ) SELECT Id_Nodo, Dir_Ip, Dir_Red, Mascara, Nombre, Clase, Gateway, Estado, Id_Histo, Fecha, Hora FROM dbo.NODO (NOLOCK) WHERE Id_Nodo = @Id_Nodo
Figura 3.17: Creación Procedimiento Almacenado SP_ImpNodo
Pág. 133
INSERT INTO TMP_INF_MEMORIA (Id_TMP_NODO, Mem_Fis_Tot, Mem_Fis_Disp, Mem_Vir_Tot, Mem_Vir_Disp, Mem_Cargada ) SELECT Id_Nodo, Mem_Fis_Tot, Mem_Fis_Disp, Mem_Vir_Tot, Mem_Vir_Disp, Mem_Cargada FROM INF_MEMORIA (NOLOCK) WHERE Id_Nodo = @Id_Nodo INSERT INTO TMP_INF_PROCESS (Id_TMP_NODO, Nombre, Porcentaje_Ocupado ) SELECT Id_Nodo, Nombre, Porcentaje_Ocupado FROM INF_PROCESS (NOLOCK) WHERE Id_Nodo = @Id_Nodo INSERT INTO TMP_INF_SO (Id_TMP_NODO, Nombre, Version, Usuario ) SELECT Id_Nodo, Nombre, Version, Usuario FROM INF_SO (NOLOCK) WHERE Id_Nodo = @Id_Nodo INSERT INTO TMP_INF_UNIDADES_HD (Id_TMP_NODO, Volumen, Serie, Tamano_Total, Tamano_Disponible ) SELECT Id_Nodo, Volumen, Serie, Tamano_Total, Tamano_Disponible FROM INF_UNIDADES_HD (NOLOCK) WHERE Id_Nodo = @Id_Nodo INSERT INTO TMP_INTERFACES_RED (Id_TMP_NODO, Descripcion, Direccion_Fisica, Paq_Recibidos, Paq_Perdidos, Nombre_Enlace, Velocidad_Enlace, Paq_Enviados ) SELECT Id_Nodo, Descripcion, Direccion_Fisica, Paq_Recibidos, Paq_Perdidos, Nombre_Enlace, Velocidad_Enlace, Paq_Enviados FROM INTERFACES_RED (NOLOCK) WHERE Id_Nodo = @Id_Nodo
Figura 3.18: Creación Procedimiento Almacenado SP_ImpNodo
Pág. 134
INSERT INTO TMP_PAQUETES (Id_TMP_NODO, Nombre, Cant_Recibidos, Cant_Enviados ) SELECT Id_Nodo, Nombre, Cant_Recibidos, Cant_Enviados FROM PAQUETES (NOLOCK) WHERE Id_Nodo = @Id_Nodo INSERT INTO TMP_PROC_EJEC (Id_TMP_NODO, Id_Proceso, Nombre_Proceso ) SELECT Id_Nodo, Id_Proceso, Nombre_Proceso FROM PROC_EJEC (NOLOCK) WHERE Id_Nodo = @Id_Nodo END ELSE BEGIN -- BORRA LA INFORMACION BASURA DE LA TEMPORAL TRUNCATE TABLE TMP_INF_INICIAL -- GUARDA EN LA TABLA TEMPORAL RESPECTIVA INSERT INTO TMP_INF_INICIAL (Dir_Red, Dir_Ip, Mascara, Clase) SELECT Dir_Red, Dir_Ip, Mascara, @Clase FROM INF_INICIAL (NOLOCK) WHERE INF_INICIAL.Dir_Red = @Dir_Red AND INF_INICIAL.Id_Histo = @Id_Histo END SET NOCOUNT OFF
Figura 3.19: Creación Procedimiento Almacenado SP_ImpNodo
Pág. 135
Procedimiento almacenado SP_Distribucion:
CREATE PROCEDURE dbo.SP_DISTRIBUCION ( @Id_Histo AS INT, @Dir_Red AS VARCHAR(15), @Dir_IP AS VARCHAR(15), @Fecha AS VARCHAR(10), -- DD/MM/YYYY @Hora_Ini AS VARCHAR(8), -- HH:MM:SS @Hora_Fin AS VARCHAR(8) -- HH:MM:SS ) AS DECLARE @INTI INT, @ESTADO INT, @NUMERO INT SET NOCOUNT ON CREATE TABLE #NODOTEMP ( Dir_Ip VARCHAR(15), Estado INT ) CREATE TABLE #TEMP1 ( Dir_Ip VARCHAR(15), Tipo VARCHAR(3) ) CREATE TABLE #TEMP2 ( IdTemp INT IDENTITY, Dir_Ip VARCHAR(15), Estado INT, Numero INT, Tipo VARCHAR(3) ) -- PARA SUBREDES IF LTRIM(RTRIM(@Dir_IP)) = '' BEGIN
Fig. 3.20: Creación Procedimiento Almacenado SP_Distribución
Pág. 136
-- GUARDA EN #NODOTEMP SOLOS LAS IPS QUE SE VAN A PROCESAR (DE LA TABLA NODO) INSERT INTO #NODOTEMP SELECT Dir_Ip, Estado FROM dbo.NODO (NOLOCK) WHERE Id_Histo = @Id_Histo AND Dir_Red = @Dir_Red AND Fecha = @Fecha AND CONVERT(DATETIME, Hora, 100) BETWEEN CONVERT(DATETIME, @Hora_Ini, 100) AND CONVERT(DATETIME, @Hora_Fin, 100) -- OBTIENE TODAS LAS IP TANTO DE NODO COMO DE INICIAL Y LAS GUARDA EN LA TEMPORAL 1 INSERT INTO #TEMP1 SELECT Dir_Ip, 'NOD' AS 'Tipo' FROM #NODOTEMP (NOLOCK) UNION SELECT Dir_Ip, 'INI' AS 'Tipo' FROM dbo.INF_INICIAL (NOLOCK) WHERE Id_Histo = @Id_Histo AND Dir_Red = @Dir_Red END ELSE BEGIN -- PARA NODOS -- GUARDA EN #NODOTEMP SOLOS LAS IPS QUE SE VAN A PROCESAR (DE LA TABLA NODO) INSERT INTO #NODOTEMP SELECT Dir_Ip, Estado FROM dbo.NODO (NOLOCK) WHERE Id_Histo = @Id_Histo AND Dir_Red = @Dir_Red AND Dir_Ip = @Dir_IP AND Fecha = @Fecha AND CONVERT(DATETIME, Hora, 100) BETWEEN CONVERT(DATETIME, @Hora_Ini, 100) AND CONVERT(DATETIME, @Hora_Fin, 100)
Figura 3.21: Creación Procedimiento Almacenado SP_Distribución
Pág. 137
-- OBTIENE TODAS LAS IP TANTO DE NODO COMO DE INICIAL Y LAS GUARDA EN LA TEMPORAL 1 INSERT INTO #TEMP1 SELECT Dir_Ip, 'NOD' AS 'Tipo' FROM #NODOTEMP (NOLOCK) UNION SELECT Dir_Ip, 'INI' AS 'Tipo' FROM dbo.INF_INICIAL (NOLOCK) WHERE Id_Histo = @Id_Histo AND Dir_Red = @Dir_Red AND Dir_Ip = @Dir_IP END
-- HACE UN AGRUPAMIENTO POR TODAS LAS IP Y LAS GUARDA EN LA TEMPORAL 2 INSERT INTO #TEMP2 (Dir_Ip, Numero) SELECT Dir_Ip, COUNT(*) FROM #TEMP1 (NOLOCK) GROUP BY Dir_Ip UPDATE #TEMP2 SET Estado = #NODOTEMP.Estado FROM #TEMP2 (NOLOCK), #NODOTEMP (NOLOCK) WHERE #TEMP2.Dir_Ip = #NODOTEMP.Dir_Ip UPDATE #TEMP2 SET Estado = 2 WHERE Estado IS NULL -- OBTIENE EL MAXIMO ID SELECT @INTI = MAX(IdTemp) FROM #TEMP2 (NOLOCK) WHILE @INTI > 0 BEGIN SELECT @ESTADO = Estado, @NUMERO = Numero FROM #TEMP2 (NOLOCK) WHERE IdTemp = @INTI
Figura 3.22: Creación Procedimiento Almacenado SP_Distribución
Pág. 138
-- SI ESTA EN AMBAS TABLAS Y ESTADO = 0 -> Tipo = 'OK' (VERDE) IF (@NUMERO = 2) AND (@ESTADO = 0) BEGIN UPDATE #TEMP2 SET Tipo = 'OK' WHERE IdTemp = @INTI END -- SI ESTA EN AMBAS TABLAS Y ESTADO = 1 -> Tipo = 'ALE' (AMARILLA) IF (@NUMERO = 2) AND (@ESTADO = 1) BEGIN UPDATE #TEMP2 SET Tipo = 'ALE' WHERE IdTemp = @INTI END -- SI ESTA SOLO EN TABLA NODO Y ESTADO = 0 -> Tipo = 'NEW' (AZUL) IF (@NUMERO = 1) AND (@ESTADO = 0) BEGIN UPDATE #TEMP2 SET Tipo = 'NEW' WHERE IdTemp = @INTI END -- SI ESTA SOLO EN TABLA NODO Y ESTADO = 1 -> Tipo = 'ALE' (AMARILLA) IF (@NUMERO = 1) AND (@ESTADO = 1) BEGIN UPDATE #TEMP2 SET Tipo = 'ALE' WHERE IdTemp = @INTI END Figura 3.23: Creación Procedimiento Almacenado SP_Distribución
Pág. 139
-- SI ESTA SOLO EN TABLA INF_INICIAL -> Tipo = 'BAD' (GRIS) IF (@NUMERO = 1) AND (@ESTADO = 2) BEGIN UPDATE #TEMP2 SET Tipo = 'BAD' WHERE IdTemp = @INTI END SET @INTI = @INTI - 1 END -- DEVUELVE LA TABLA PARA SU PROCESAMIENTO SELECT Dir_Ip, Estado, Numero, Tipo FROM #TEMP2 (NOLOCK) ORDER BY Dir_Ip SET NOCOUNT OFF
Figura. 3.24: Creación Procedimiento Almacenado SP_Distribución
Pág. 140
3.3- Código Funciones principales del sistema
VSCANNET ADMINISTRADOR
GRAFICAR RED
Private Sub DibujarHisto() Dim rsDibujo As New ADODB.Recordset Dim rsAux As New ADODB.Recordset Dim rsConn As New ADODB.Connection Dim strIPTmp As Variant Dim strTemp As String Dim strIPAux As String Dim intJ As Integer Dim intI As Integer Dim strHoraIni As String Dim strHoraFin As String Dim Matriz(100, 100) As Variant Dim strTiempo As String On Error GoTo LError: 'Se abre la conexion rsConn.ConnectionString = gstrCadenaConn rsConn.Open If strTipo = "TODOS" Then gstrSQL = "SELECT DISTINCT(INF_INICIAL.Dir_Red)" gstrSQL = gstrSQL & " FROM dbo.INF_INICIAL (NOLOCK)" gstrSQL = gstrSQL & " WHERE INF_INICIAL.Id_Histo = " & strHisto Else gstrSQL = "SELECT 1" End If If rsAux.State = adStateOpen Then rsAux.Close rsAux.Open gstrSQL, rsConn, adOpenForwardOnly, adLockReadOnly, adCmdText If rsAux.EOF Then MsgBox "Error. No existen nodos que se encuentren en la configuración inicial", vbCritical, gstrNApli GoTo LSalir End If
Figura 3.25: Graficar Red/ Conexión BD y Validaciones
Pág. 141
Select Case strTipo Case "TODOS" gstrSQL = gstrSQL & " @Dir_Red = '" & Trim$(CStr(rsAux(0).value)) & "'," gstrSQL = gstrSQL & " @Dir_IP = ''," Case "SUBRED" gstrSQL = gstrSQL & " @Dir_Red = '" & Trim$(strIP) & "'," gstrSQL = gstrSQL & " @Dir_IP = ''," Case "NODO" gstrSQL = gstrSQL & " @Dir_Red = '" & Trim$(TVPic.Nodes(TVPic.SelectedItem.Index).Parent) & "'," gstrSQL = gstrSQL & " @Dir_IP = '" & Trim$(strIP) & "'," End Select If optAct.value = True Then gstrSQL = gstrSQL & " @Fecha = '" & Format(Date, "DD/MM/YYYY") & "'," Else gstrSQL = gstrSQL & " @Fecha = '" & Format(Trim$(mskFecha.Text), "DD/MM/YYYY") & "'," End If gstrSQL = gstrSQL & " @Hora_Ini = '" & Trim$(strHoraIni) & "'," gstrSQL = gstrSQL & " @Hora_Fin = '" & Trim$(strHoraFin) & "' " If rsDibujo.State = adStateOpen Then rsDibujo.Close rsDibujo.Open gstrSQL, rsConn, adOpenForwardOnly, adLockReadOnly, adCmdText If rsDibujo.EOF Then MsgBox "No hay datos que mostrar", vbInformation, gstrNApli GoTo LSalir End If Do While Not rsDibujo.EOF strIPTmp = Split(Trim$(rsDibujo("Dir_Ip")), ".") If Trim$(strIP) = "TODAS" Then strTemp = Trim$(rsDibujo("Dir_Ip")) Else strTemp = "." & Trim$(strIPTmp(3)) End If Select Case UCase(Trim$(rsDibujo("Tipo"))) Case "OK" 'PCOK intPCOK = intPCOK + 1 If (intI Mod 2) = 1 Then Call DibujaObjetos(imgPCOK(intPCOK), lblIPOK(intObjs), ShapeV(intObjs), intI, intJ, strTemp, False, Trim$(rsDibujo("Dir_Ip")))
Figura 3.26: Graficar Red/ Conexión BD y Validaciones
Pág. 142
Else Call DibujaObjetos(imgPCOK(intPCOK), lblIPOK(intObjs), ShapeV(intObjs), intI, intJ + 1, strTemp, True, Trim$(rsDibujo("Dir_Ip"))) End If Case "BAD" 'PCBAD intPCBAD = intPCBAD + 1 If (intI Mod 2) = 1 Then Call DibujaObjetos(imgPCBAD(intPCBAD), lblIPBad(intPCBAD), ShapeV(intObjs), intI, intJ, strTemp, False, Trim$(rsDibujo("Dir_Ip"))) Else Call DibujaObjetos(imgPCBAD(intPCBAD), lblIPBad(intPCBAD), ShapeV(intObjs), intI, intJ + 1, strTemp, True, Trim$(rsDibujo("Dir_Ip"))) End If Case "NEW" 'PCNEW intPCNEW = intPCNEW + 1 If (intI Mod 2) = 1 Then Call DibujaObjetos(imgPCNEW(intPCNEW), lblIPNew(intPCNEW), ShapeV(intObjs), intI, intJ, strTemp, False, Trim$(rsDibujo("Dir_Ip"))) Else Call DibujaObjetos(imgPCNEW(intPCNEW), lblIPNew(intPCNEW), ShapeV(intObjs), intI, intJ + 1, strTemp, True, Trim$(rsDibujo("Dir_Ip"))) End If Case "ALE" 'PCALE intPCALE = intPCALE + 1 If (intI Mod 2) = 1 Then Call DibujaObjetos(imgPCALE(intPCALE), lblIPAle(intPCALE), ShapeV(intObjs), intI, intJ, strTemp, False, Trim$(rsDibujo("Dir_Ip"))) Else Call DibujaObjetos(imgPCALE(intPCALE), lblIPAle(intPCALE), ShapeV(intObjs), intI, intJ + 1, strTemp, True, Trim$(rsDibujo("Dir_Ip"))) End If End Select intI = intI + 1 intObjs = intObjs + 1 rsDibujo.MoveNext Loop Call dibujaRed(intCont, intI - 1) intJ = intJ + 2 intI = 1 intCont = intCont + 1 rsAux.MoveNext Loop
Figura 3.27: Graficar Red/ Conexión BD y Validaciones
Pág. 143
Entre los procesos que realiza esta función se tiene:
Abre la conexión con la base de datos
Realiza las validaciones verificando la existencia de datos
Realiza las validaciones de fecha y hora
Llama a las funciones: Dibuja objeto y Dibuja red
LSalir: If rsDibujo.State = adStateOpen Then rsDibujo.Close Set rsDibujo = Nothing If rsConn.State = adStateOpen Then rsConn.Close Set rsConn = Nothing If rsAux.State = adStateOpen Then rsAux.Close Set rsAux = Nothing Exit Sub Resume LError: MsgBox Err.Description, vbCritical, gstrNApli If rsDibujo.State = adStateOpen Then rsDibujo.Close Set rsDibujo = Nothing If rsConn.State = adStateOpen Then rsConn.Close Set rsConn = Nothing If rsAux.State = adStateOpen Then rsAux.Close Set rsAux = Nothing End Sub
Figura. 3.28: Graficar Red/ Conexión BD y Validaciones
Pág. 144
Esta función ubica y carga cada uno de los objetos(PC’S) que van a formar
parte de la gráfica de red. Los mismos que serán ubicados sobre y debajo de
la linea horizontal que representa a una red.
Private Sub DibujaObjetos(ObjImg As Image, objLbl As Label, objShape As Shape, i As Integer, j As Integer, strNombre As String, bolPar As Boolean, strIP As String) Load ObjImg ObjImg.Left = 300 + ((i - 1) * 800) ObjImg.Top = 300 + ((j - 1) * 1200) ObjImg.Visible = True Load objLbl objLbl.Left = 100 + ((i - 1) * 800) objLbl.Top = 100 + ((j - 1) * 1200) objLbl.Visible = True objLbl.Caption = strNombre objLbl.Tag = strIP Load objShape If bolPar Then 'Par (Abajo) objShape.Left = 500 + ((i - 1) * 800) objShape.Top = -150 + ((j - 1) * 1200) Else 'Impar (Arriba) objShape.Left = 500 + ((i - 1) * 800) objShape.Top = 810 + ((j - 1) * 1200) End If objShape.Visible = True End Sub
Figura 3.29: Graficar Red / Dibujar Objetos
Pág. 145
Esta función grafica lo que van a ser las líneas que van a representar a una
red, es decir; que por cada red se dibujará una linea horizontal(Topología
Ethernet- formato definido).
Private Sub dibujaRed(Cont As Integer, i As Integer) Load Line1(Cont) Line1(Cont).Visible = True If Cont = 1 Then Line1(Cont).Y1 = 1000 Line1(Cont).Y2 = 1000 Else Line1(Cont).Y1 = 2400 + Line1(Cont - 1).Y1 Line1(Cont).Y2 = 2400 + Line1(Cont - 1).Y2 End If Line1(Cont).X1 = 230 Line1(Cont).X2 = i * 800 Load Shape1(Cont) Shape1(Cont).Visible = True Shape1(Cont).Left = Line1(Cont).X1 - 30 Shape1(Cont).Top = Line1(Cont).Y1 - 100 Load Shape2(Cont) Shape2(Cont).Visible = True Shape2(Cont).Left = Line1(Cont).X2 Shape2(Cont).Top = Line1(Cont).Y2 - 100 End Sub
Figura 3.30: Graficar Red / Dibujar Red
Pág. 146
Private Sub DibujaTree() Dim rsRed As New ADODB.Recordset Dim rsNodo As New ADODB.Recordset Dim rsConn As New ADODB.Connection Dim intI As Integer Dim intJ As Integer Dim nodX As Node On Error GoTo LError: 'Se abre la conexion rsConn.ConnectionString = gstrCadenaConn rsConn.Open 'Se obtiene el Id Historico (Ultimo hecho) strHisto = ObtieneUltimoIDHisto() 'Se obtienen las Subredes gstrSQL = "SELECT DISTINCT Dir_Red" gstrSQL = gstrSQL & " FROM dbo.INF_INICIAL(NOLOCK)" gstrSQL = gstrSQL & " WHERE INF_INICIAL.Id_Histo = " & strHisto If rsRed.State = adStateOpen Then rsRed.Close rsRed.Open gstrSQL, rsConn, adOpenForwardOnly, adLockReadOnly, adCmdText If rsRed.EOF Then MsgBox "Error. La configuración inicial tiene errores", vbCritical, gstrNApli GoTo LSalir End If 'Se llena el nodo raiz Set nodX = TVPic.Nodes.Add(, , "A", "RAIZ", 1) intI = 1 intJ = 1 'Lazo de llenado de las subredes Do While Not rsRed.EOF 'Se llena los nodos Sub-Red Set nodX = TVPic.Nodes.Add("A", tvwChild, "B" & CStr(intI), Trim$(rsRed(0)), 2)
Figura 3.31: Graficar Red / Dibujar Arbol
Pág. 147
Figura 3.32: Graficar Red / Dibujar Arbol
'Se obtienen las Subredes gstrSQL = "SELECT DISTINCT(Dir_Ip) FROM NODO (NOLOCK)" gstrSQL = gstrSQL & " WHERE Id_Histo = " & strHisto gstrSQL = gstrSQL & " AND Dir_Red = '" & Trim$(rsRed(0)) & "'" gstrSQL = gstrSQL & " UNION" gstrSQL = gstrSQL & " SELECT DISTINCT(Dir_Ip) FROM INF_INICIAL (NOLOCK)" gstrSQL = gstrSQL & " WHERE Id_Histo = " & strHisto gstrSQL = gstrSQL & " AND Dir_Red = '" & Trim$(rsRed(0)) & "'"
If rsNodo.State = adStateOpen Then rsNodo.Close rsNodo.Open gstrSQL, rsConn, adOpenForwardOnly, adLockReadOnly, adCmdText If rsNodo.EOF Then MsgBox "Error fatal. Comuniquese con el provedor del sistema", vbCritical, gstrNApli GoTo LSalir End If intJ = 1 'Lazo de llenado de los nodos Do While Not rsNodo.EOF Set nodX = TVPic.Nodes.Add("B" & CStr(intI), tvwChild, "C" & CStr(intI) & CStr(intJ), Trim$(rsNodo(0)), 3) intJ = intJ + 1 rsNodo.MoveNext Loop intI = intI + 1 rsRed.MoveNext Loop nodX.EnsureVisible Call ContraerTree LSalir: If rsRed.State = adStateOpen Then rsRed.Close Set rsRed = Nothing If rsNodo.State = adStateOpen Then rsNodo.Close Set rsNodo = Nothing If rsConn.State = adStateOpen Then rsConn.Close Set rsConn = Nothing Exit Sub
Pág. 148
Esta función crea el árbol donde se muestran las direcciones de red y
direcciones ip descubiertas, existen tres niveles; la raíz donde se podrá
ingresar el nombre de la empresa, un hijo donde se representará a cada
dirección de red descubierta y un subhijo que representará a las direcciones
ip de las redes decubiertas.
DESCUBRIMIENTO DE REDES
Option Explicit Private Sub cmdEnviar_Click() Dim strIP As String Dim strMask As String Dim strClase As String Dim strIDHisto As String Dim strDesc As String Dim strDatos As String On Error GoTo LError If VerificaDatos = False Then Exit Sub strIP = Trim$(txtIP(0)) & "." & Trim$(txtIP(1)) & "." & Trim$(txtIP(2)) & "." & Trim$(txtIP(3)) 'IP strMask = Trim$(txtMask(0)) & "." & Trim$(txtMask(1)) & "." & Trim$(txtMask(2)) & "." & Trim$(txtMask(3)) 'Mascara strClase = Trim$(Clase) 'Clase If chkDesc.value = 1 Then 'Pertenece al anterior descubrimiento (el mismo Id_Histo) strIDHisto = Trim$(ObtieneUltimoIDHisto) strDesc = "ANT"
Figura 3.33: Descubrir Red
Pág. 149
Else 'Nuevo descubrimiento (el Id_Histo + 1) strIDHisto = Trim$(CStr(CInt(ObtieneUltimoIDHisto) + 1)) strDesc = "NUE" End If 'Datos a enviar strDatos = "DNR¶" & strIP & "|" & strMask & "|" & strClase & "|" & strIDHisto & "|" & strDesc & "|" EnviaDatos Trim$(strDatos) frmWait.Show vbModal If frmWait.bolCancelado = True Then MsgBox "El proceso se ha cancelado", vbExclamation, gstrNApli EnviaDatos "Cadena_De_Cancelacion" Else MsgBox "El proceso se ha realizado exitosamente", vbInformation, gstrNApli End If Unload Me Exit Sub LError: MsgBox "ERROR: " & Err.Description, vbCritical, gstrNApli Unload Me End Sub 'Enviar los datos (datos_a_Enviar) a un host remoto Private Sub EnviaDatos(datos_a_Enviar As String, Optional HostRemoto As String = "255.255.255.255") 'si no se especifica, entonces es 255.255.255.255) wsConn.Protocol = sckUDPProtocol wsConn.RemoteHost = HostRemoto wsConn.RemotePort = 5000 wsConn.Bind 2500 wsConn.SendData datos_a_Enviar End Sub
Figura 3.34: Descubrir Red
Pág. 150
Private Sub cmdSalir_Click() Unload Me End Sub Private Sub Form_Load() intApliOpen = intApliOpen + 1 'frmMask.Enabled = False HabilitaMask False, False, False, False End Sub Private Sub Form_Unload(Cancel As Integer) intApliOpen = intApliOpen - 1 End Sub Private Sub txtIP_Change(Index As Integer) txtMask(0).Text = "" txtMask(1).Text = "" txtMask(2).Text = "" txtMask(3).Text = "" HabilitaMask False, False, False, False End Sub Private Sub txtIP_GotFocus(Index As Integer) Selecciona txtIP(Index) End Sub Private Sub txtIP_KeyPress(Index As Integer, KeyAscii As Integer) Select Case KeyAscii Case 13, 46 'Enter, punto(".") If Trim$(txtIP(Index).Text) <> "" Then KeyAscii = 0 SendKeys "{TAB}" End If Case 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 8 'Numeros (0 - 9), Back space Case Else 'Cualquier otro KeyAscii = 0 End Select End Sub
Figura. 3.35: Descubrir Red
Pág. 151
Private Sub txtIP_LostFocus(Index As Integer) If Trim$(txtIP(Index).Text) <> "" Then If VerificaDatosIP(Index) = False Then Exit Sub If Index = 3 Then Call ObtenerMask End If If Trim$(txtIP(0).Text) <> "" And Trim$(txtIP(1).Text) <> "" And Trim$(txtIP(2).Text) <> "" And Trim$(txtIP(3).Text) <> "" Then Select Case UCase(Trim$(Clase)) Case "A" HabilitaMask False, True, True, True Case "B" HabilitaMask False, False, True, True Case "C" HabilitaMask False, False, False, True End Select End If End Sub 'Verificar datos correctos Private Function VerificaDatosIP(Indice As Integer) As Boolean Dim strTemp As Integer VerificaDatosIP = False If Trim$(txtIP(Indice).Text) = "" Then MsgBox "Debe ingresar una IP", vbExclamation, gstrNApli Selecciona txtIP(Indice) Exit Function End If If Not IsNumeric(Trim$(txtIP(Indice).Text)) Then MsgBox "Debe ingresar una IP válida", vbExclamation, gstrNApli Selecciona txtIP(Indice) Exit Function End If If CInt(Trim$(txtIP(Indice).Text)) > 255 Then MsgBox "Debe ingresar una IP válida (Entre 0 - 255)", vbExclamation, gstrNApli Selecciona txtIP(Indice) Exit Function End If
Figura. 3.36: Descubrir Red
Pág. 152
MsgBox "Debe ingresar una IP válida (Entre 0 - 255)", vbExclamation, gstrNApli Selecciona txtIP(1) Exit Function End If
strTemp = CInt(Trim$(txtIP(Indice).Text)) txtIP(Indice).Text = CStr(strTemp) VerificaDatosIP = True End Function Private Function VerificaDatos() As Boolean VerificaDatos = False If Trim$(txtIP(0).Text) = "" Then MsgBox "Debe ingresar una IP", vbExclamation, gstrNApli Selecciona txtIP(0) Exit Function End If If Trim$(txtIP(1).Text) = "" Then MsgBox "Debe ingresar una IP", vbExclamation, gstrNApli Selecciona txtIP(1) Exit Function End If If Trim$(txtIP(2).Text) = "" Then MsgBox "Debe ingresar una IP", vbExclamation, gstrNApli Selecciona txtIP(2) Exit Function End If If Trim$(txtIP(3).Text) = "" Then MsgBox "Debe ingresar una IP", vbExclamation, gstrNApli Selecciona txtIP(3) Exit Function End If If CInt(Trim$(txtIP(0).Text)) > 255 Then MsgBox "Debe ingresar una IP válida (Entre 0 - 255)", vbExclamation, gstrNApli Selecciona txtIP(0) Exit Function End If
Fig. 3.37: Descubrir Red
Pág. 153
If CInt(Trim$(txtIP(2).Text)) > 255 Then MsgBox "Debe ingresar una IP válida (Entre 0 - 255)", vbExclamation, gstrNApli Selecciona txtIP(2) Exit Function End If If CInt(Trim$(txtIP(3).Text)) > 255 Then MsgBox "Debe ingresar una IP válida (Entre 0 - 255)", vbExclamation, gstrNApli Selecciona txtIP(3) Exit Function End If If Trim$(txtMask(1).Text) = "" Then MsgBox "Debe ingresar una Máscara", vbExclamation, gstrNApli Selecciona txtMask(1) Exit Function End If If Trim$(txtMask(2).Text) = "" Then MsgBox "Debe ingresar una Máscara", vbExclamation, gstrNApli Selecciona txtMask(2) Exit Function End If If Trim$(txtMask(3).Text) = "" Then MsgBox "Debe ingresar una Máscara", vbExclamation, gstrNApli Selecciona txtMask(3) Exit Function End If If CInt(Trim$(txtMask(1).Text)) > 255 Then MsgBox "Debe ingresar una Máscara válida (Entre 0 - 255)", vbExclamation, gstrNApli Selecciona txtMask(1) Exit Function End If If CInt(Trim$(txtMask(2).Text)) > 255 Then MsgBox "Debe ingresar una Máscara válida (Entre 0 - 255)", vbExclamation, gstrNApli Selecciona txtMask(2) Exit Function End If
Figura 3.38: Descubrir Red
Pág. 154
If CInt(Trim$(txtMask(3).Text)) > 255 Then MsgBox "Debe ingresar una Máscara válida (Entre 0 - 255)", vbExclamation, gstrNApli Selecciona txtMask(3) Exit Function End If VerificaDatos = True End Function 'Obtiener la mascara Private Sub ObtenerMask() DefaultMask txtIP(0) & "." & txtIP(1) & "." & txtIP(2) & "." & txtIP(3) If IP4 = "255" Then MsgBox "Error. Dirección IP incorrecta. Por favor ingresela nuevamente", vbExclamation, gstrNApli txtMask(0) = "" txtMask(1) = "" txtMask(2) = "" txtMask(3) = "" txtIP(0).SetFocus Exit Sub End If txtMask(0) = IP1 txtMask(1) = IP2 txtMask(2) = IP3 txtMask(3) = IP4 End Sub Private Sub HabilitaMask(Valor0 As Boolean, Valor1 As Boolean, Valor2 As Boolean, Valor3 As Boolean) 'Habilita o deshabilita un texto con mascara txtMask(0).Enabled = Valor0 txtMask(1).Enabled = Valor1 txtMask(2).Enabled = Valor2 txtMask(3).Enabled = Valor3 End Sub
Figura 3.39: Descubrir Red
Pág. 155
Todas estas funciones permiten realizar el descubrimiento de red. Para esto
e envía en un paquete al modulo descubridor de red la dirección, la máscara
y la clase de la red que se desea descubrir. Además se validan que las
direcciones ingresadas sean correctas, se calcula la máscara de acuerdo a la
dirección ingresada, verificando la clase de red a la que pertenecen; asi
mismo se permite que el usuario ingrese una máscara diferente a la que por
defecto se asigna para que se realice el descubrimiento de subredes.
Private Sub txtMask_GotFocus(Index As Integer) Selecciona txtMask(Index) End Sub Private Sub txtMask_KeyPress(Index As Integer, KeyAscii As Integer) Select Case KeyAscii Case 13, 46 'Enter, punto(".") If Trim$(txtMask(Index).Text) <> "" Then KeyAscii = 0 SendKeys "{TAB}" End If Case 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 8 'Numeros (0 - 9), Back space Case Else 'Cualquier otro KeyAscii = 0 End Select End Sub
Figura 3.40: Descubrir Red
Pág. 156
VSCANNET SERVIDOR
public class ServidorVScanNet { DatagramSocket recibirSocket; DatagramPacket recibirPaquete; UDPServ hiloServidor; static final int Puerto=3333; static final long tiempo=50; public ServidorVScanNet() { try{ recibirSocket=new DatagramSocket(Puerto); System.out.println("Escuchando por puerto :" +Puerto); }catch(SocketException se){ System.out.println("Error al crear Socket en el constructor"); } } //===================================================== public void EsperarPaquetes() { try{ while(true){ try{ byte array[]=new byte[2048]; recibirPaquete =new DatagramPacket(array, array.length); System.out.println("Esperando paquete"); recibirSocket.receive(recibirPaquete); String cadena = new String (recibirPaquete.getData()); hiloServidor=new UDPServ(cadena); hiloServidor.start(); }catch(Exception e){ System.out.println("Error al recibir paquete"+ e); } finally{ }//finally 1 }// fin del while }finally{ recibirSocket.close(); }//finally2 } //========================================================= public static void main( String[] args ) throws Exception{ ServidorVScanNet sv=new ServidorVScanNet(); sv.EsperarPaquetes(); } }
Figura .3.41: Clase Principal / Cargar Servidor VScanNet
Pág. 157
Esta clase es la principal que carga el Servidor VScanNet el cual prepara el
DatagramSocket para recibir el paquete que enviará el Cliente VScanNet
que será escuchado por el PUERTO 3333.
Posee un método EsperarPaquetes() el cual se mantiene activo acogiendo
los paquetes de llegada.
En este método efectúa la llamada a otra clase muy importante
UDPServ(cadena) donde se le manda por parámetro la cadena de
información llegada.
Pág. 158
La Clase UDPServ(cadena) contiene en el varios métodos que efectúan
acciones importante como el reconocimiento de la Cabecera del paquete que
llega.
Método run() se activa cada vez que llega un paquete y este hace la
llamada a otro llamado LeerCab(cadena).
public synchronized void run() {
String cadena=recibirPaquete;
System.out.println ("Dato q llega del cliente: " + cadena );
try {
sleep(sleeptime);
System.out.println ("UDP estoy paso a leer cabecera" +
cadena );
LeerCab(cadena);
System.out.println ("Sali de leer cabecera" );
} catch (InterruptedException e) {
}
}
Figura 3.42: Método de la Clase UDPServ / Recibe Paquete
Pág. 159
En el método LeerCab(String info ) efectúa la división entre la Cabecera y
Datos para proceder con la comparación de la Cabecera RIN
public void LeerCab(String info ) throws InterruptedException{
String cabeza=null;
String cola= null;
String cad2=null;
System.out.println("esta es info LeerCab " + info);
//++++++++capturo paquete y analizo cabecera cola de datos++++++++
StringTokenizer probarTokens=new StringTokenizer(info,"¶");
int cont=probarTokens.countTokens();
System.out.println("numero tokens de espacio trebol : " + cont);
cabeza =probarTokens.nextToken();
System.out.println("dentro Leer Cab := " + cabeza);
while (probarTokens.hasMoreTokens())// me retorna un boolean si hay
mas delimitadores
{
cola=probarTokens.nextToken();
cad2=cola;
}//fin while1 obtener " "
// ++++++++++++ Pregunto q paquete es ++++++++++++++++++++
if (cabeza.equals("RIN"))
{
System.out.println("dentro RIN cabeza esta es la cola := " +
cad2);
if (!cabeza.equalsIgnoreCase(" ")){
try {
SepararCeldas(cad2);
} catch (SQLException e) {
e.printStackTrace();
}//fin del if
}
}
} //fin LeerCab
Figura 3.43: Método de la Clase UDPServ/ Reconoce la Cabecera
Pág. 160
En el método SepararCeldas( ) Se efectúa la primera organización de inf.
Que estará delimitado por el carácter especial &
public void SepararCeldas(String cad2) throws SQLException{
System.out.println(" Entro a partir celdas con Amperson & :=" + cad2);
StringTokenizer colita=new StringTokenizer(cad2,"&");
int cont2=colita.countTokens();
int j=0;
String[] celdas=new String[cont2];
while(colita.hasMoreTokens())
{
celdas[j]=colita.nextToken();
System.out.println("tokens cola:= "+ j + " " + celdas[j]);
j++;
}//while colita
celdas[cont2-1]="";
DESCUBRIR_SUBCAD(celdas,cont2);
}//fin de SepararCeldas
Fig.ura 3.44: Método de la Clase UDPServ/ Separa inf. Principal Paquete
Pág. 161
Este método permite la extracción mas a fondo la información .para llevar a
cabo se usa el carácter especial | (pipe).
public void DESCUBRIR_SUBCAD(String[] cad, int cont2) throws SQLException {//extraersubcad
(String cad){
System.out.println("entro a Descubrir REd " );
System.out.println("ver cont2 " +cont2 );
int a;
String ip;
String mask;
for(int j=0; j<cont2;j++ )
{
a=0;
StringTokenizer subTokens=new StringTokenizer(cad[j],"|");
int nDatos=subTokens.countTokens();
String[] subcad=new String[nDatos];
int pospaq=nDatos+1;
// me retorna un boolean si hay mas delimitadores y siguen el ciclo del while
while (subTokens.hasMoreTokens())
{
String datos=subTokens.nextToken();
subcad[a]=datos;
if ( ((j==3) || (j==5) || (j==6)|| (j==7))&&(BloquearSave==0))
{
System.out.println("tabla posicion := "+ j );
DESCUBRIR_SUBCADSPCIAL(datos,j,pospaq,nDatos);
}
a++;
} //fin del while | pipe
System.out.println("SALGO DE CADA WHILE := "+ j );
if (j==0){
ip=subcad[0];
test=ip;
mask=subcad[1];
subred=AnalizaSUBRED(ip,mask);
System.out.println("ENTRO A CREAR CONSTRUCUTOR NODO" );
Nodo unNodo=new Nodo();
barrerArregloN(subcad,unNodo);
}//fin del if
else {
if ( ((j==1) || (j==2) || (j==4))&&(BloquearSave==0))
{
Fig. 3.45: Método de la Clase UDPServ// Separa inf. Principal Paquete
Pág. 162
Continuando con el método anterior .Una vez obtenida la mínima información
hará llamadas a cada estructura creada de acuerdo al orden de información
dada para almacenarlas temporalmente hasta que guarde en la base.
System.out.println("SALGO DE CADA WHILE := "+ j );
if (j==0){
ip=subcad[0];
test=ip;
mask=subcad[1];
subred=AnalizaSUBRED(ip,mask);
System.out.println("ENTRO A CREAR CONSTRUCUTOR NODO" );
Nodo unNodo=new Nodo();
barrerArregloN(subcad,unNodo);
}//fin del if
else {
if ( ((j==1) || (j==2) || (j==4))&&(BloquearSave==0))
{
System.out.println("Presentar en la posicion j :=" +j );
switch(j)
{
case 1:
INF_SO unNodoSO=new INF_SO();
barrerArregloINFSO(subcad,unNodoSO);
break;
case 2:
INF_PROCESS unNodoPROC=new INF_PROCESS();
barrerArregloINFPROC(subcad,unNodoPROC);
System.out.println("Este es el nombre :=" +subcad[0] );
break;
case 4:
INF_MEMORIA unNodoMEMO=new INF_MEMORIA();
barrerArregloMEMO(subcad,unNodoMEMO);
break;
}//FIN DEL SWITCH
}
}// fin del else
}//fin d el for
}//fin Descubrir RED
Fig. 3.46: Método de la Clase UDPServ/ almacenamiento temporal
Pág. 163
Clase Base() permite crear la conexión con la Base de Datos. Dando la ruta predefinida. Esta clase será llamada por las diferentes estructuras temporales.
package clases;
import java.sql.Connection;
public class Base {
private static Connection coneccion;
public static Connection getConeccion(){
if (coneccion == null){
try{
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
coneccion=
java.sql.DriverManager.getConnection(
"jdbc:jtds:sqlserver://192.168.2.8:1433/VScanNet", "sa",
"");
coneccion.setAutoCommit(false);
}catch (Throwable e){
System.out.println(e);
}
}
return coneccion;
}
}
Fig. 3.47: Clase Base/ Crea Conexión
Pág. 164
Aquì existen mas detalle de acuerdo al orden de desempaquetamiento
existentes.
Las Clases y métodos nombrados efectúan acciones relevantes, pero cabe
mencionar que todos dependen entre sí.
Pág. 165
VSCANNET AGENTE
Función que se utiliza para obtener la interface de la red, dirección física, paquetes recibidos, paquetes perdidos, tipo de enlace y velocidad de enlace de las interfaces del nodo. Public Function info_interface() As String Dim interf As String Dim v_link As String Dim t_link As String Dim i As Integer For i = 1 To pcktX.Adapters.Count If agente.pcktX.Adapters(i).IsGood Then Captura velocidad en Mb v_link = Format(pcktX.Adapters(i).LinkSpeed / 1000000, "##0.00") Captura el tipo de enlace Select Case pcktX.Adapters(i).LinkType Case 0 t_link = "Tipo de enlace desconocido" Case 1 t_link = "Ethernet (802.3)" Case 2 t_link = "Token Ring (802.5)" Case 3 t_link = "FDDI" Case 4 t_link = "WAN" Case 5 t_link = "LocalTalk" Case 6 t_link = "DIX" Case 7 t_link = "ARCNET (raw)" Case 8 t_link = "ARCNET (878.2)" Case 9 t_link = "ATM" Case 10 t_link = "Varios tipos de medios wireless" End Select If i = 1 Then interf = pcktX.Adapters(i).Description & "@" & _ pcktX.Adapters(i).HWAddress & "@" & _ pcktX.Adapters(i).PacketsRecv & "@" & _ pcktX.Adapters(i).PacketsLost & "@" & _ c_enviados & "@" & _ t_link & "@" & _ v_link
Fig. 3.48: Formulario agente
Pág. 166
Else interf = interf & "|" & pcktX.Adapters(i).Description & "@" & _ pcktX.Adapters(i).HWAddress & "@" & _ pcktX.Adapters(i).PacketsRecv & "@" & _ pcktX.Adapters(i).PacketsLost & "@" & _ "0" & "@" & _ t_link & "@" & _ v_link End If End If Next info_interface = interf End Function Función que permite obtener la dirección Ip, Máscara, nombre de Nodo, gateway y clase de red. Public Function obtener_ip_masc() As String obtener_ip_masc = pcktX.Adapter.NetIP & "|" & pcktX.Adapter.NetMask & "|" & nombre_nodo & "|" & obtener_gateway & "|" & obtener_clase_nodo(pcktX.Adapter.NetIP) End Function Función que recibe como parámetro una cadena de caracteres que representa a la dirección IP del nodo y devuelve el tipo de clase al cual pertenece la dirección Ip recibida. Public Function obtener_clase_nodo(strip As String) As String Dim tempip As Integer Dim clase() As String clase() = Split(strip, ".") tempip = CInt(clase(0)) Select Case tempip Case 0 To 127 obtener_clase_nodo = "A" Case 128 To 191 obtener_clase_nodo = "B" Case 192 To 223 obtener_clase_nodo = "C" Case 224 To 239 obtener_clase_nodo = "D" Case 240 To 255 obtener_clase_nodo = "E" End Select End Function
Función del componente Packet que obtiene cada uno de los paquetes recibidos y enviados a través de la red.
Además los clasifica según su tipo en Tcp, Ip, Udp o Ethernet.
Private Sub pcktX_OnPacket(ByVal pPacket As PacketXLibCtl.IPktXPacket) If pPacket.SourceIpAddress = pcktX.Adapter.NetIP Then c_enviados = c_enviados + 1 Select Case pPacket.Protocol Case 1 ce_ether = ce_ether + 1 Case 2 ce_ip = ce_ip + 1 Case 3 ce_udp = ce_udp + 1 Case 4 ce_tcp = ce_tcp + 1 End Select Else Select Case pPacket.Protocol Case 1 cr_ether = cr_ether + 1 Case 2
cr_ip = cr_ip + 1 Case 3
cr_udp = cr_udp + 1 Case 4 cr_tcp = cr_tcp + 1 End Select End If End Sub
Fig. 3.49: Formulario agente
Pág. 167
Select Case pPacket.Protocol Case 1 ce_ether = ce_ether + 1 Case 2 ce_ip = ce_ip + 1 Case 3 ce_udp = ce_udp + 1 Case 4 ce_tcp = ce_tcp + 1 End Select Else Select Case pPacket.Protocol Case 1 cr_ether = cr_ether + 1 Case 2 cr_ip = cr_ip + 1 Case 3 cr_udp = cr_udp + 1 Case 4 cr_tcp = cr_tcp + 1 End Select End If End Sub Función del componente Timer que se ejecuta cada segundo y en la cual obtenemos el porcentaje de memoria ocupada, ademas de encargarse de armar el paquete PIR con la cabecera RIN y lo envía como dirección broadcast por el puerto 3000 para lo cual se sirve de una conexión UDP. Private Sub tmrRefresh_Timer() On Error GoTo RutinaErrores Dim Ret As Double 'query the CPU usage Ret = QueryObject.Query If Ret = -1 Then tmrRefresh.Enabled = False MsgBox "Error mientras obtenia el tiempo de uso del CPU" End If uso_cpu = CDbl(Format$((uso_cpu + Ret) / 2, "##0.00")) band = band + 1 If (uso_cpu >= 90) Then ws_udp_cs.RemoteHost = "255.255.255.255" ws_udp_cs.RemotePort = 2500 alerta = "AAN" & "¶" & nombre_nodo & "|" & pcktX.Adapter.NetIP & "|" & "Alto porcentaje de uso de procesador" ws_udp_cs.SendData alerta estado = 1 Else estado = 0 End If If (band > 58) Then Call ModificarIconoEnLaBarra(2) _masc() & "|" & obtener_fecha() & "|" & obtener_hora() & "|" & CStr(estado) & "&" & _ info_s_o & "&" & _ informacion_cpu & "|" & uso_cpu & "&" & _ info_disco_duro & "&" & _ info_memoria & "&" & _ info_interface & "&" & _ info_procesos & "&" & _ "IP" & "@" & cr_ip & "@" & ce_ip & "|" & "TCP" & "@" & cr_tcp & "@" & ce_tcp & "|" & "UDP" & "@" & cr_udp & "@" & ce_udp & "|" & "ETHERNET" & "@" & cr_ether & "@" & ce_ether & "&" ws_udp_cs.RemoteHost = "255.255.255.255" ws_udp_cs.RemotePort = 3333 ws_udp_cs.SendData cad Call encerar_variables Call ModificarIconoEnLaBarra(1) End If Exit Sub
Fig. 3.50: Formulario agente
Pág. 168
End If If band = 60 Then pcktX.Stop cad = "RIN" & "¶" & obtener_ip_masc() & "|" & obtener_fecha() & "|" & obtener_hora() & "|" & CStr(estado) & "&" & _ info_s_o & "&" & _ informacion_cpu & "|" & uso_cpu & "&" & _ info_disco_duro & "&" & _ info_memoria & "&" & _ info_interface & "&" & _ info_procesos & "&" & _ "IP" & "@" & cr_ip & "@" & ce_ip & "|" & "TCP" & "@" & cr_tcp & "@" & ce_tcp & "|" & "UDP" & "@" & cr_udp & "@" & ce_udp & "|" & "ETHERNET" & "@" & cr_ether & "@" & ce_ether & "&" ws_udp_cs.RemoteHost = "255.255.255.255" ws_udp_cs.RemotePort = 3333 ws_udp_cs.SendData cad Call encerar_variables Call ModificarIconoEnLaBarra(1) End If Exit Sub RutinaErrores: MsgBox "Error No. : " & Err.Number & Chr$(10) & Chr$(13) & "Descripción: " & Err.Description, vbExclamation, "Error de Ejecución" tmrRefresh_Timer End End Sub
Fig. 3.51: Formulario agente
Pág. 169
Modulo Disco_Duro
Función de la API’s de windows con la cual se obtiene el espacio total y espacio libre de una Unidad de disco
Declare Function GetDiskFreeSpace Lib "kernel32" Alias "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTtoalNumberOfClusters As Long) As Long Función de la API’s con la cual se obtiene el número de serie de un disco Private Declare Function GetVolumeInformation& Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal pVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) Función de la API’s con la cual se obtiene el tipo de drive Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long Función que obtiene el tamaño ocupado y tamaño libre de una unidad de disco duro. Public Function espacio_disco_duro(unidad As String) As String Dim e1 As Long Dim e2 As Long Dim e3 As Long Dim e4 As Long Dim el As String Dim et As String Dim ealarma As Double Dim eocupado As Double Se envía los sectores por cluster, bytes por sector, cluster libres y cluster totales GetDiskFreeSpace unidad, e1, e2, e3, e4
Devuelve el espacio total y el espacio libre de una unidad de disco duro
et = Format$((e1 * e2 * (e4 / 1073741824)), "#,###.##") el = Format$((e1 * e2 * (e3 / 1073741824)), "#,###.##") ealerta = CDbl(et) * 0.9 eocupado = CDbl(et) - CDbl(el) If (eocupado >= ealerta) Then agente.ws_udp_cs.RemoteHost = "255.255.255.255" agente.ws_udp_cs.RemotePort = 2500 agente.alerta = "AAN" & "¶" & "|" & nombre_nodo & "|" & agente.pcktX.Adapter.NetIP & "|" & "La unidad " & Mid$(unidad, 1, 1) & " de disco duro tiene poca capacidad de Almacenamiento" agente.ws_udp_cs.SendData agente.alerta
Debug.Print "Alerta: " & agente.alerta estado = 1 Else estado = 0 End If If (et = ",") Or (el = ",") Then el = "0"
Fig. 3.52: Modulo_Disco_Duro
Pág. 170
estado = 0 End If If (et = ",") Or (el = ",") Then el = "0" et = "0" End If espacio_disco_duro = et & "@" & el End Function Función que recibe como parámetro la unidad de disco duro y obtiene el número de serie de dicha unidad Public Function numero_serie(unidad As String) As String Dim cad1 As String * 255 Dim cad2 As String * 255 Dim numSerie As Long 'Dim longitud As Long 'Dim flag As Long Call GetVolumeInformation(unidad, cad1, 255, numSerie, 0, 0, cad2, 255) numero_serie = numSerie End Function Función que devuelve la unidad, nñumero de serie, tamaño ocupado y tamaño libre de cada unidad del disco duro. Public Function info_disco_duro() As String Dim cadena As String Dim Dtype As Long Dim uni As String Dim i As Integer For i = 67 To 90 uni = Chr$(i) Dtype = GetDriveType(uni + ":\") If Dtype = 3 Then If i > 67 Then cadena = cadena & "|" End If cadena = cadena & uni & "@" & numero_serie(uni & ":\") & "@" & espacio_disco_duro(uni & ":\") End If Next i info_disco_duro = cadena End Function
Fig. 3.53: Modulo_Disco_Duro
Pág. 171
Definición de estructura que va a guardar información de memoria como es: porcentaje en uso de M. física total y libre, M. virtual total y libre.
Private Type MEMORYSTATUS dwLength As Long ' tamaño de memoria(MEMORYSTATUS) dwMemoryLoad As Long ' porcentaje de memoria en uso dwTotalPhys As Long ' bytes de memoria fisica dwAvailPhys As Long ' bytes libres de memoria fisica dwTotalPageFile As Long ' bytes de pagina de archivo dwAvailPageFile As Long ' bytes libres de pagina de archivo dwTotalVirtual As Long ' bytes de memoria virtual dwAvailVirtual As Long ' bytes libres de memoria virtual End Type
Función de la API’s con la cual se obtiene información acerca de estado actual de la memoria del sistema.
Private Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MEMORYSTATUS) Public estado As Integer
Función que devuelve información acerca de estado actual de la memoria del sistema.
Public Function info_memoria() As String Dim MS As MEMORYSTATUS Dim cad As String MS.dwLength = Len(MS) Call GlobalMemoryStatus(MS) With MS cad = Format(.dwMemoryLoad, "##0.00") & "|" & _ Format(.dwTotalPhys / 1024, "#,##") & "|" & _ Format(.dwAvailPhys / 1024, "#,##") & "|" & _ Format(.dwTotalVirtual / 1024, "#,##") & "|" & _ Format(.dwAvailVirtual / 1024, "#,##") If (CDbl(Format$(.dwMemoryLoad, "##0.00")) > 90) Then agente.ws_udp_cs.RemoteHost = "255.255.255.255" agente.ws_udp_cs.RemotePort = 2500 agente.ws_udp_cs.SendData agente.alerta agente.alerta = "AAN" & "¶" & nombre_nodo & "|" & agente.pcktX.Adapter.NetIP & "|" & "Poca capacidad de Memoria Disponible" estado = 1 Else estado = 0 End If
End With info_memoria = cad End Function
Fig. 3.54: Modulo_Estado_Memoria
Pág. 172
If CloseHandle(hSnapShot) = False Then Call Err_Dll(Err.LastDllError, "CloseHandle failed", sLocation, "Process32_Enum") Exit Function Else ReDim Process(lProcess) Process(lProcess) = PROCESSENTRY32 End If Do If Process32Next(hSnapShot, PROCESSENTRY32) = False Then Exit Do Else lProcess = lProcess + 1 ReDim Preserve Process(lProcess) Process(lProcess) = PROCESSENTRY32 End If Loop If CloseHandle(hSnapShot) = False Then Call Err_Dll(Err.LastDllError, "CloseHandle failed", sLocation, "Process32_Enum") '(Err.LastDllError, sLocation & "\Process32_Enum", "CloseHandle") Process32_Enum = lProcess Exit Function VB_Error: Err_Vb Err.Number, Err.Description, sLocation, "Process32_Enum" Resume Next End Function Función que obtiene un listado de los procesos activos Public Function List_ActiveProcess() As String Dim lCount As Long Dim pFile As String Dim cad As String lCount = Process32_Enum(Process()) Dim i As Long For i = 0 To lCount Dim str As String If i = 0 Then cad = CStr(Process(i).th32ProcessID) & "@" & Left(CStr(Process(i).szExeFile), 20) Else cad = cad & "|" & CStr(Process(i).th32ProcessID) & "@" & Left(CStr(Process(i).szExeFile), 20) End If Next i List_ActiveProcess = cad End Function
Fig. 3.55: Modulo_Estado_Memoria
Pág. 173
VSCANNET DESCUBRIDOR
Definición de estructura de datos que permite almacenar información de la imagen del icono a ser visualizado en la barra del reloj de windows Private Type NOTIFYICONDATA cbSize As Long hwnd As Long uId As Long uFlags As Long uCallBackMessage As Long hIcon As Long szTip As String * 64 End Type Declaración de variables globales que se utilizaran en el sistema Private TheForm As NOTIFYICONDATA Private Red As String Private Broad As String Private Mascara As String Private Clase As String Private idHisto As Long Private tipodesc As String Private bytes_mascara As Integer Private cad_conex As String Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" _ (ByVal dwMessage As Long, pTheForm As NOTIFYICONDATA) As Boolean Sub QuitaIconoDeLaBarra() Quita el icono de la barra del reloj Shell_NotifyIcon &H2, TheForm End Sub Procedimiento que coloca el icono de la aplicación en la barra del reloj Sub PonIconoEnLaBarra(i As Integer) Establece las propiedades de NOTIFYICONDATA Pic1.Picture = IL1.ListImages(i).ExtractIcon TheForm.cbSize = Len(TheForm) TheForm.hwnd = Pic1.hwnd TheForm.uId = 1& TheForm.hIcon = Pic1.Picture TheForm.uFlags = &H2 Or &H4 Or &H1 TheForm.uCallBackMessage = &H200 TheForm.szTip = "Descubridor de la Red" & Chr$(0) Muestra el icono en la barra del reloj Shell_NotifyIcon &H0, TheForm End Sub Procedimiento que modifica el icono de la barra del reloj para que de un aspecto de parpadeo cada vez que se realiza un ping a una dirección Ip. Sub ModificarIconoEnLaBarra(i As Integer) Establece las propiedades de NOTIFYICONDATA Pic1.Picture = IL1.ListImages(i).ExtractIcon TheForm.cbSize = Len(TheForm) TheForm.hwnd = Pic1.hwnd
Fig. 3.56: Formulario Descubridor_Red
Pág. 174
Pic1.Picture = IL1.ListImages(i).ExtractIcon TheForm.cbSize = Len(TheForm) TheForm.hwnd = Pic1.hwnd TheForm.uId = 1& TheForm.hIcon = Pic1.Picture TheForm.uFlags = &H2 Or &H4 Or &H1 TheForm.uCallBackMessage = &H200 TheForm.szTip = "Descubridor de la Red" & Chr$(0) Muestra el icono en la barra del reloj Shell_NotifyIcon &H1, TheForm End Sub Procedimiento que recibe como parámetros la dirección Ip, máscara, la clase de red, y el número del historial de descubrimiento, dentro de la función se encarga de averiguar que tipo de clase es, reserva las el tamaño del arreglo donde guardar las Ip, llena el arreglo con las Ip a las cuales efectuara un ping para finalmente invocar al método Timer del objeto Timerping. Private Sub enviar_ping() Dim X As Integer Dim Y As Integer Dim z As Integer Dim inter As Integer Dim dirIp As String Dim arreglo() As String Dim arreglo2() As String Select Case UCase(Trim$(Clase)) Case "A" Resetea el valor de indexit para usarlo otra vez indexit = 0 arreglo = Split(Red, ".") arreglo2 = Split(Mascara, ".") If (bytes_mascara = 8) Then Broad = arreglo(0) & ".255.255.255" Redimensiona el tamaño del arreglo en la cual se guardarán las IP's a las cuales se les hara ping ReDim Ips(16777214) Guarda en un arreglo las IP's a las cuales se les hará ping For X = 0 To 255 For Y = 0 To 255 For z = 0 To 255 dirIp = arreglo(0) & "." & CStr(X) & "." & CStr(Y) & "." & CStr(z) If (dirIp <> Red) And (dirIp <> Broad) Then Ips(indexit) = dirIp indexit = indexit + 1 End If Next z Next Y Next X totalips = indexit - 1 Resetea el valor de indexit a 0 para usarlo en el timer indexit = 0 Ejecutar el timer
Fig. 3.57: Formulario Descubridor_Red
Pág. 175
totalips = indexit - 1 Resetea el valor de indexit a 0 para usarlo en el timer indexit = 0 Ejecutar el timer Timerping.Enabled = True No espera por el primer intervalo Timerping_Timer Else Select Case bytes_mascara Case 9 To 16 posini = CInt(arreglo(2)) Select Case CInt(arreglo2(2)) Case 128 posfin = posini + 127 Redimensiona el tamaño del arreglo en la cual se guardaran las IP's a las cuales se les hará ping ReDim Ips(8388606) Broad = arreglo(0) & "." & CStr(posfin) & ".255.255" For X = posini To posfin For Y = 0 To 255 For z = 0 To 255 dirIp = arreglo(0) & "." & CStr(X) & "." & CStr(Y) & "." & CStr(z) If (dirIp <> Red) And (dirIp <> Broad) Then Ips(indexit) = dirIp indexit = indexit + 1 End If Next z Next Y Next X totalips = indexit - 1 'Resetea el valor de indexit para usarlo en el timer indexit = 0 'Ejecutar el timer Timerping.Enabled = True Timerping_Timer Case 192 posfin = posini + 63 Redimensiona el tamaño del arreglo en la cual se guardaran las IP's a las cuales se les hará ping ReDim Ips(4194302) Broad = arreglo(0) & "." & CStr(posfin) & ".255.255" For X = posini To posfin For Y = 0 To 255 dirIp = arreglo(0) & "." & arreglo(1) & "." & CStr(X) & "." & CStr(Y) If (dirIp <> Red) And (dirIp <> Broad) Then Ips(indexit) = dirIp indexit = indexit + 1 End If Next Y Next X totalips = indexit - 1 Resetea el valor de indexit para usarlo en el timer
Fig. 3.58: Formulario Descubridor_Red
Pág. 176
Next Y Next X totalips = indexit - 1 Resetea el valor de indexit para usarlo en el timer indexit = 0 'Ejecutar el timer Timerping.Enabled = True Timerping_Timer Case 224 posfin = posini + 31 Redimensiona el tamaño del arreglo en la cual se gurdaran las IP's a las cuales se les hara ping ReDim Ips(2097150) Broad = arreglo(0) & "." & CStr(posfin) & ".255.255" For X = posini To posfin For Y = 0 To 255 dirIp = arreglo(0) & "." & arreglo(1) & "." & CStr(X) & "." & CStr(Y) If (dirIp <> Red) And (dirIp <> Broad) Then Ips(indexit) = dirIp indexit = indexit + 1 End If Next Y Next X totalips = indexit - 1 'Resetea el valor de indexit para usarlo en el timer indexit = 0 'Ejecutar el timer Timerping.Enabled = True Timerping_Timer Case 240 posfin = posini + 15 Redimensiona el tamaño del arreglo en la cual se gurdaran las IP's a las cuales se les hara ping ReDim Ips(1048574) Broad = arreglo(0) & "." & CStr(posfin) & ".255.255" For X = posini To posfin For Y = 0 To 255 dirIp = arreglo(0) & "." & arreglo(1) & "." & CStr(X) & "." & CStr(Y) If (dirIp <> Red) And (dirIp <> Broad) Then Ips(indexit) = dirIp indexit = indexit + 1 End If Next Y Next X totalips = indexit - 1 'Resetea el valor de indexit para usarlo en el timer indexit = 0 'Ejecutar el timer Timerping.Enabled = True Timerping_Timer Case 248 posfin = posini + 7
Fig. 3.59: Formulario Descubridor_Red
Pág. 177
Timerping.Enabled = True Timerping_Timer Case 248 posfin = posini + 7 Redimensiona el tamaño del arreglo en la cual se guardaran las IP's a las cuales se les hará ping ReDim Ips(524286) Broad = arreglo(0) & "." & CStr(posfin) & ".255.255" For X = posini To posfin For Y = 0 To 255 dirIp = arreglo(0) & "." & arreglo(1) & "." & CStr(X) & "." & CStr(Y) If (dirIp <> Red) And (dirIp <> Broad) Then Ips(indexit) = dirIp indexit = indexit + 1 End If Next Y Next X totalips = indexit - 1 Resetea el valor de indexit para usarlo en el timer indexit = 0 Ejecutar el timer Timerping.Enabled = True Timerping_Timer Case 252 posfin = posini + 3 Redimensiona el tamaño del arreglo en la cual se guardaran las IP's a las cuales se les hará ping ReDim Ips(262142) Broad = arreglo(0) & "." & CStr(posfin) & ".255.255" For X = posini To posfin For Y = 0 To 255 dirIp = arreglo(0) & "." & arreglo(1) & "." & CStr(X) & "." & CStr(Y) If (dirIp <> Red) And (dirIp <> Broad) Then Ips(indexit) = dirIp indexit = indexit + 1 End If Next Y Next X totalips = indexit - 1 Resetea el valor de indexit para usarlo en el timer indexit = 0 Ejecutar el timer Timerping.Enabled = True Timerping_Timer Case 254 posfin = posini + 1 Redimensiona el tamaño del arreglo en la cual se guardarán las IP's a las cuales se les hará ping ReDim Ips(131070) Broad = arreglo(0) & "." & CStr(posfin) & ".255.255" For X = posini To posfin For Y = 0 To 255 dirIp = arreglo(0) & "." & arreglo(1) & "." & CStr(X) & "." &
Fig. 3.60: Formulario Descubridor_Red
Pág. 178
ReDim Ips(131070) Broad = arreglo(0) & "." & CStr(posfin) & ".255.255" For X = posini To posfin For Y = 0 To 255 dirIp = arreglo(0) & "." & arreglo(1) & "." & CStr(X) & "." & CStr(Y) If (dirIp <> Red) And (dirIp <> Broad) Then Ips(indexit) = dirIp indexit = indexit + 1 End If Next Y Next X totalips = indexit - 1 'Resetea el valor de indexit para usarlo en el timer indexit = 0 'Ejecutar el timer Timerping.Enabled = True Timerping_Timer Case 255 Redimensiona el tamaño del arreglo en la cual se guardará las IP's a las cuales se les hará ping ReDim Ips(65533) Broad = arreglo(0) & "." & arreglo(1) & ".255.255" For X = 0 To 255 For Y = 0 To 255 dirIp = arreglo(0) & "." & arreglo(1) & "." & CStr(X) & "." & CStr(Y) If (dirIp <> Red) And (dirIp <> Broad) Then Ips(indexit) = dirIp indexit = indexit + 1 End If Next Y Next X totalips = indexit - 1 'Resetea el valor de indexit para usarlo en el timer indexit = 0 'Ejecutar el timer Timerping.Enabled = True Timerping_Timer End Select Case 17 To 24 posini = CInt(arreglo(2)) Select Case CInt(arreglo2(2)) Case 128 posfin = posini + 127 Redimensiona el tamaño del arreglo en la cual se guardarán las IP's a las cuales se les hará ping ReDim Ips(32766) Broad = arreglo(0) & "." & arreglo(1) & "." & CStr(posfin) & ".255" For X = posini To posfin For Y = 0 To 255 dirIp = arreglo(0) & "." & arreglo(1) & "." & CStr(X) & "." & CStr(Y) If (dirIp <> Red) And (dirIp <> Broad) Then Ips(indexit) = dirIp indexit = indexit + 1 End If Next Y Next X totalips = indexit - 1 Resetea el valor de indexit para usarlo en el timer indexit = 0 Ejecutar el timer
Timerping.Enabled = True Timerping_Timer Case 192 posfin = posini + 63 Redimensiona el tamaño del arreglo en la cual se guardarán las IP's a las cuales se les hará ping ReDim Ips(16382)
Fig. 3.61: Formulario Descubridor_Red
Pág. 179
For X = posini To posfin For Y = 0 To 255 dirIp = arreglo(0) & "." & arreglo(1) & "." & CStr(X) & "." & CStr(Y) If (dirIp <> Red) And (dirIp <> Broad) Then Ips(indexit) = dirIp indexit = indexit + 1 End If Next Y Next X totalips = indexit - 1 Resetea el valor de indexit para usarlo en el timer indexit = 0 Ejecutar el timer Timerping.Enabled = True Timerping_Timer Case 192 posfin = posini + 63 Redimensiona el tamaño del arreglo en la cual se guardarán las IP's a las cuales se les hará ping ReDim Ips(16382) Broad = arreglo(0) & "." & arreglo(1) & "." & CStr(posfin) & ".255" For X = posini To posfin For Y = 0 To 255 dirIp = arreglo(0) & "." & arreglo(1) & "." & CStr(X) & "." & CStr(Y) If (dirIp <> Red) And (dirIp <> Broad) Then Ips(indexit) = dirIp indexit = indexit + 1 End If Next Y Next X totalips = indexit - 1 Resetea el valor de indexit para usarlo en el timer indexit = 0 Ejecutar el timer Timerping.Enabled = True Timerping_Timer Case 224 posfin = posini + 31 Redimensiona el tamaño del arreglo en la cual se guardarán las IP's a las cuales se les hará ping ReDim Ips(8190) Broad = arreglo(0) & "." & arreglo(1) & "." & CStr(posfin) & ".255" For X = posini To posfin For Y = 0 To 255 dirIp = arreglo(0) & "." & arreglo(1) & "." & CStr(X) & "." & CStr(Y) If (dirIp <> Red) And (dirIp <> Broad) Then Ips(indexit) = dirIp indexit = indexit + 1 End If Next Y Next X totalips = indexit - 1 Resetea el valor de indexit para usarlo en el timer indexit = 0 Ejecutar el timer Timerping.Enabled = True Timerping_Timer Case 240 posfin = posini + 15 Redimensiona el tamaño del arreglo en la cual se guardarán las IP's a las cuales se les hará ping
ReDim Ips(4094) Broad = arreglo(0) & "." & arreglo(1) & "." & CStr(posfin) & ".255" For X = posini To posfin For Y = 0 To 255
Fig. 3.62: Formulario Descubridor_Red
Pág. 180
Select Case CInt(arreglo2(2)) Case 128 posfin = posini + 127 Redimensiona el tamaño del arreglo en la cual se guardarán las IP's a las cuales se les hará ping ReDim Ips(32766) Broad = arreglo(0) & "." & arreglo(1) & "." & CStr(posfin) & ".255" For X = posini To posfin For Y = 0 To 255 dirIp = arreglo(0) & "." & arreglo(1) & "." & CStr(X) & "." & CStr(Y) If (dirIp <> Red) And (dirIp <> Broad) Then Ips(indexit) = dirIp indexit = indexit + 1 End If Next Y Next X totalips = indexit - 1 Resetea el valor de indexit para usarlo en el timer indexit = 0 Ejecutar el timer Timerping.Enabled = True Timerping_Timer Case 192 posfin = posini + 63 Redimensiona el tamaño del arreglo en la cual se guardarán las IP's a las cuales se les hará ping ReDim Ips(16382) Broad = arreglo(0) & "." & arreglo(1) & "." & CStr(posfin) & ".255" For X = posini To posfin For Y = 0 To 255 dirIp = arreglo(0) & "." & arreglo(1) & "." & CStr(X) & "." & CStr(Y) If (dirIp <> Red) And (dirIp <> Broad) Then Ips(indexit) = dirIp indexit = indexit + 1 End If Next Y Next X totalips = indexit - 1 Resetea el valor de indexit para usarlo en el timer indexit = 0 Ejecutar el timer Timerping.Enabled = True Timerping_Timer Case 224 posfin = posini + 31 Redimensiona el tamaño del arreglo en la cual se guardarán las IP's a las cuales se les hará ping ReDim Ips(8190) Broad = arreglo(0) & "." & arreglo(1) & "." & CStr(posfin) & ".255" For X = posini To posfin For Y = 0 To 255 dirIp = arreglo(0) & "." & arreglo(1) & "." & CStr(X) & "." & CStr(Y) If (dirIp <> Red) And (dirIp <> Broad) Then Ips(indexit) = dirIp indexit = indexit + 1 End If Next Y Next X totalips = indexit - 1 Resetea el valor de indexit para usarlo en el timer indexit = 0 'Ejecutar el timer Timerping.Enabled = True Timerping_Timer Case 240 posfin = posini + 15 Redimensiona el tamaño del arreglo en la cual se guardarán las IP's a las
Fig. 3.63: Formulario Descubridor_Red
Pág. 181
inter = 14 Case 248 posfin = posini + 7 inter = 6 Case 252 posfin = posini + 3 inter = 2 Case Else Exit Sub End Select Broad = arreglo(0) & "." & arreglo(1) & "." & arreglo(2) & "." & CStr(posfin) Redimensiona el tamaño del arreglo en la cual se guardarán las IP's a las cuales se les hará ping ReDim Ips(inter) Guarda en un arreglo las IP's a las cuales se les hara ping For X = posini To posfin dirIp = arreglo(0) & "." & arreglo(1) & "." & arreglo(2) & "." & CStr(X) If (dirIp <> Red) And (dirIp <> Broad) Then Ips(indexit) = dirIp indexit = indexit + 1 End If Next X totalips = indexit - 1 Resetea el valor de indexit para usarlo en el timer indexit = 0 Ejecutar el timer Timerping.Enabled = True Timerping_Timer End Select End If Case "C" Resetea el valor de indexit para usarlo otra vez indexit = 0 arreglo = Split(Red, ".") arreglo2 = Split(Mascara, ".") If (bytes_mascara = 24) Then Broad = arreglo(0) & "." & arreglo(1) & "." & arreglo(2) & ".255" posini = 0 posfin = 255 inter = 254 Else posini = CInt(arreglo(3)) Select Case CInt(arreglo2(3)) Case 128 posfin = posini + 127 inter = 126 Case 192 posfin = posini + 63 inter = 62 Case 224 posfin = posini + 31 inter = 30 Case 240 posfin = posini + 15 inter = 14 Case 248 posfin = posini + 7
inter = 6 Case 252 posfin = posini + 3 inter = 2 Case Else Exit Sub End End Select Broad = arreglo(0) & "." & arreglo(1) & "." & arreglo(2) & "." & CStr(posfin)
Fig. 3.64: Formulario Descubridor_Red
Pág. 182
posfin = posini + 63 inter = 62 Case 224 posfin = posini + 31 inter = 30 Case 240 posfin = posini + 15 inter = 14 Case 248 posfin = posini + 7 inter = 6 Case 252 posfin = posini + 3 inter = 2 Case Else Exit Sub End End Select Broad = arreglo(0) & "." & arreglo(1) & "." & arreglo(2) & "." & CStr(posfin) End If Redimensiona el tamaño del arreglo en la cual se guardarán las IP's a las cuales se les hará ping ReDim Ips(inter) Guarda en un arreglo las IP's a las cuales se les hara ping For X = posini To posfin dirIp = arreglo(0) & "." & arreglo(1) & "." & arreglo(2) & "." & CStr(X) If (dirIp <> Red) And (dirIp <> Broad) Then Ips(indexit) = dirIp indexit = indexit + 1 End If Next X totalips = indexit - 1 'Resetea el valor de indexit para usarlo en el timer indexit = 0 'Ejecutar el timer Timerping.Enabled = True Timerping_Timer End Select End Sub
Fig. 3.65: Formulario Descubridor_Red
Pág. 183
3.4.- Diccionario de Datos VER ANEXO
Anexo Tomo N° II
Cápitulo 3
Manual Técnico
Pág.199
SISTEMA: VscanNet
NOMBRE LOGICO:
DESCRIPCION
NUM TIPO CAMPO DESCRIPCIONFORMATO
TAMAÑO
VALORES
VALIDOSREGLAS DE VALIDACION
1 Entero Id_Tmp_NodoIdentificador del nodo y relación
con la tabla de los nodos4 Numeros Se permite solo numeros
2 Texto Volumen La unidad lógica del disco 15 Caracteres Se permiten todos los caracteres
3 Texto Serie La serie del disco 10 Caracteres Se permiten todos los caracteres
4 Texto Tamano_TotalTamaño total de la capacidad del
disco50 Caracteres Se permite solo numeros
5 Texto Tamano_Disponible Tamaño disponible del disco 50 Caracteres Se permite solo numeros
TMP_INF_UNIDADES_HD
Temporal de Reportes. Información de los DISCOS D operativos de cada máquina
DICCIONARIO DE DATOS
Anexo Tomo N° II
Cápitulo 3
Manual Técnico
Pág.200
SISTEMA: VscanNet
NOMBRE LOGICO:
DESCRIPCION
NUM TIPO CAMPO DESCRIPCIONFORMATO
TAMAÑO
VALORES
VALIDOSREGLAS DE VALIDACION
1 Entero Id_Tmp_Nodo
Identificador del nodo y relación con la
tabla de los nodos 4 Numeros Se permite solo numeros
2 Texto Descripcion Descripción de la interfase 100 Caracteres Se permiten todos los caracteres
3 Texto Direccion_Fisica Dirección física de la tarjeta 15 Caracteres Se permiten todos los caracteres
4 Entero Paq_Recibidos Número de paquetes recibidos 4 Caracteres Se permite solo numeros
5 Entero Paq_Perdidos Número de paquetes perdidos 4 Caracteres Se permite solo numeros
6 Texto Nombre_Enlace Nombre del enlace de red 20 Caracteres Se permiten todos los caracteres
7 Texto Velocidad_EnlaceVelocidad del enlace 20 Caracteres Se permite solo numeros
8 Entero Paq_Enviados Número de paquetes enviados 4 Caracteres Se permite solo numeros
TMP_INF_INTERFACES_RED
Temporal de Reportes. Información de las tarjetas o interfaces de red que contiene cada PC
DICCIONARIO DE DATOS
Anexo Tomo N° II
Cápitulo 3
Manual Técnico
Pág.201
SISTEMA: VscanNet
NOMBRE LOGICO:
DESCRIPCION
NUM TIPO CAMPO DESCRIPCIONFORMATO
TAMAÑO
VALORES
VALIDOSREGLAS DE VALIDACION
1 Entero Id_Tmp_NodoIdentificación de un nodo en una fecha
y hora específica4 Numeros Se permite solo numeros
2 Texto Dir_Ip Dirección IP del nodo 15 CaracteresSe permite solo numeros y el
punto
3 Texto Dir_Red Dirección de red 15 CaracteresSe permite solo numeros y el
punto
4 Texto Mascara Máscara de red 15 CaracteresSe permite solo numeros y el
punto
5 Texto Nombre Nombre del nodo 50 Caracteres Se permiten todos los caracteres
6 Texto Clase Clase de la red que contiene al nodo 1 CaracteresSe permiten solo los caracteres
'A', 'B' o 'C'
7 Texto Gateway Dirección IP del Gateway de la red 15 CaracteresSe permite solo numeros y el
punto
8 Entero EstadoMuestra si la PC tiene una especie de
alerta o no4 Numeros
Se permite solo los numeros 0 o
1
9 Entero Id_HistoNúmero de veces que se realiza el
descubrimiento de la red por parte del 4 Numeros Se permite solo numeros
10 Texto FechaFecha en que se guardó la información
del nodo10 Caracteres
Se permite solo numeros y el
carcter '/'
11 Texto HoraHora en que se guardó la información
del nodo8 Caracteres
Se permite solo numeros y el
carcter ':'
TMP_INF_NODO
Temporal de Reportes. Información principal de la PC que va a ser única por cada una de éstas
DICCIONARIO DE DATOS
Anexo Tomo N° II
Cápitulo 3
Manual Técnico
Pág.202
SISTEMA: VscanNet
NOMBRE LOGICO:
DESCRIPCION
NUM TIPO CAMPO DESCRIPCIONFORMATO
TAMAÑO
VALORES
VALIDOSREGLAS DE VALIDACION
1 Entero Id_Tmp_Nodo
Identificador del nodo y relación con
la tabla de los nodos4 Numeros
Se permite solo numeros
2 Texto Nombre Nombre del paquete20 Caracteres
Se permiten todos los caracteres
3 Entero Cant_Recibidos Número de paquetes recibidos4 Numeros
Se permite solo numeros
4 Entero Cant_Enviados Número de paquetes enviados 4 NumerosSe permite solo numeros
TMP_INF_PAQUETES
Temporal de Reportes. Información de los paquetes enviados y recibidos por el nodo
DICCIONARIO DE DATOS
Anexo Tomo N° II
Cápitulo 3
Manual Técnico
Pág.203
SISTEMA: VscanNet
NOMBRE LOGICO:
DESCRIPCION
NUM TIPO CAMPO DESCRIPCIONFORMATO
TAMAÑO
VALORES
VALIDOSREGLAS DE VALIDACION
1 Entero Id_Tmp_Nodo
Identificador del nodo y
relación con la tabla de los 4 Numeros Se permite solo numeros
2 Entero Id_Proceso Identificador del proceso 4 Numeros Se permite solo numeros
3 Texto Nombre_Proceso Iombre del proceso 25 Caracter Se permiten todos los caracteres
TMP_PROC_EJEC
Temporal de Reportes. Información de los procesos que se están ejecutando en una máquina
DICCIONARIO DE DATOS
Anexo Tomo N° II
Cápitulo 3
Manual Técnico
Pág.194
SISTEMA: VscanNet
NOMBRE LOGICO:
DESCRIPCION
NUM TIPO CAMPO DESCRIPCIONFORMATO
TAMAÑO
VALORES
VALIDOSREGLAS DE VALIDACION
1 Texto UsuarioIdentificador del usuario, también
llamado nombre de usuario 15 Caracter Se permiten todos los caracteres
2 Texto Cedula Número de cédula del usuario10 Caracter Se permite solo numeros
3 Texto Contrasena Clave o contraseña del usuario40 Caracter Se permiten todos los caracteres
4 Date Ini_TurnoInicio del rango de horas en las
cuales el usuario puede ingresar a la 8 Numeros Se permite solo numeros
5 Date Fin_TurnoFin del rango de horas en las cuales
el usuario puede ingresar a la 8 Numeros Se permite solo numeros
6 Texto Nombres Nombres del usuario20 Caracter Se permiten todos los caracteres
7 Texto Apellidos Apellidos del usuario20 Caracter Se permiten todos los caracteres
8 Texto Telefono Número telefónico del usuario10 Caracter Se permiten todos los caracteres
9 Texto StatusIndica si el usuario es administrador
o no 1 Caracter Se permiten los caracteres 'S' o 'N'
10 Texto FechaFecha en que se guardó la
información del nodo10 Caracteres Se permite solo numeros y el carcter '/'
11 Texto HoraHora en que se guardó la
información del nodo8 Caracteres Se permite solo numeros y el carcter ':'
USUARIO
Datos principales de los usuarios del sistema
DICCIONARIO DE DATOS
Anexo Tomo N° II
Cápitulo 3
Manual Técnico
Pág.195
SISTEMA: VscanNet
NOMBRE LOGICO:
DESCRIPCION
NUM TIPO CAMPO DESCRIPCIONFORMATO
TAMAÑO
VALORES
VALIDOSREGLAS DE VALIDACION
1 Texto Dir_Ip
Dirección IP de los nodos de una
subred15 Caracteres Se permite solo numeros y el punto
2 Texto Dir_Red Dirección IP de la subred 15 Caracteres Se permite solo numeros y el punto
3 Texto Mascara Máscara de subred 15 Caracteres Se permite solo numeros y el punto
4 Texto Clase
Clase de la red que contiene al
nodo 1 Caracteres Se permiten solo los caracteres 'A', 'B' o 'C'
TMP_INF_INICIAL
Temporal de Reportes. Guarda información Inicial
DICCIONARIO DE DATOS
Anexo Tomo N° II
Cápitulo 3
Manual Técnico
Pág.196
SISTEMA: VscanNet
NOMBRE LOGICO:
DESCRIPCION
NUM TIPO CAMPO DESCRIPCIONFORMATO
TAMAÑO
VALORES
VALIDOSREGLAS DE VALIDACION
1 Entero Id_Tmp_NodoIdentificador del nodo y relación con
la tabla de los nodos4 Numeros Se permite solo numeros
2 Texto Mem_Fis_Tot Tamaño total de la memoria física 50 Caracteres Se permite solo numeros
3 Texto Mem_Fis_DispTamaño disponible de la memoria
física50 Caracteres Se permite solo numeros
4 Texto Mem_Vir_Tot Total de la memoria virtual 50 Caracteres Se permite solo numeros
5 Texto Mem_Vir_DispTamaño disponible de la memoria
virtual50 Caracteres Se permite solo numeros
6 Texto Mem_Cargada Tamaño de la memoria cargada 50 Caracteres Se permite solo numeros
TMP_INF_MEMORIA
Temporal de Reportes. Almacena información de la memoria de la PC
DICCIONARIO DE DATOS
Anexo Tomo N° II
Cápitulo 3
Manual Técnico
Pág.197
SISTEMA: VscanNet
NOMBRE LOGICO:
DESCRIPCION
NUM TIPO CAMPO DESCRIPCIONFORMATO
TAMAÑO
VALORES
VALIDOSREGLAS DE VALIDACION
1 Entero Id_Tmp_NodoIdentificador del nodo y relación
con la tabla de los nodos4 Numeros Se permite solo numeros
2 Texto Nombre Nombre del procesador 50 CaracteresSe permiten todos los
caracteres
3 Texto Porcentaje_Ocupado Porcentaje de uso del procesador 50 Caracteres Se permite solo numeros
TMP_INF_PROCESS
Temporal de Reportes. Guarda Información del o los procesadores del PC
DICCIONARIO DE DATOS
Anexo Tomo N° II
Cápitulo 3
Manual Técnico
Pág.198
SISTEMA: VscanNet
NOMBRE LOGICO:
DESCRIPCION
NUM TIPO CAMPO DESCRIPCIONFORMATO
TAMAÑO
VALORES
VALIDOSREGLAS DE VALIDACION
1 Entero Id_Tmp_Nodo
Identificador del nodo y relación con
la tabla de los nodos 4 Numeros Se permite solo numeros
2 Texto Nombre
Sistemas operativos con que cuenta
la máquina 20 Caracteres
Se permiten todos los
caracteres
3 Texto Version Versión del sistema operativo 10 Caracteres
Se permiten todos los
caracteres
4 Texto Usuario
Usuario que esta ingresado en el
sistema operativo respectivo 15 Caracteres
Se permiten todos los
caracteres
TMP_INF_SO
Temporal de Reportes. Información de los sistemas operativos de cada máquina
DICCIONARIO DE DATOS
Anexo Tomo N° II
Cápitulo 3
Manual Técnico
Pág.190
SISTEMA:
NOMBRES LOGICO:
DESCRIPCION:
NUM TIPO CAMPO DESCRIPCIONFORMATO
TAMAÑO
VALORES
VALIDOSREGLAS DE VALIDACION
1 Entero Id_NodoIdentificador del nodo y
relación con la tabla de los 4 Numeros Se permite solo numeros
2 Texto Descripcion Descripción de la interfase 100 Caracteres Se permiten todos los caracteres
3 Texto Direccion_Fisica Dirección física de la tarjeta 15 Caracteres Se permiten todos los caracteres
4 Entero Paq_RecibidosNúmero de paquetes
recibidos4 Caracteres Se permite solo numeros
5 Entero Paq_PerdidosNúmero de paquetes
perdidos4 Caracteres Se permite solo numeros
6 Texto Nombre_Enlace Nombre del enlace de red 20 Caracteres Se permiten todos los caracteres
7 Texto Velocidad_Enlace Velocidad del enlace 20 Caracteres Se permite solo numeros
8 Entero Paq_EnviadosNúmero de paquetes
enviados4 Caracteres Se permite solo numeros
DICCIONARIO DE DATOS
VScanNet
INTERFACES_RED
Información de las tarjetas o interfaces de red que contiene cada PC
Anexo Tomo N° II
Cápitulo 3
Manual Técnico
Pág.201
SISTEMA: VscanNet
NOMBRE LOGICO:
DESCRIPCION
NUM TIPO CAMPO DESCRIPCIONFORMATO
TAMAÑO
VALORES
VALIDOSREGLAS DE VALIDACION
1 Entero Id_Tmp_NodoIdentificación de un nodo en una fecha
y hora específica4 Numeros Se permite solo numeros
2 Texto Dir_Ip Dirección IP del nodo 15 CaracteresSe permite solo numeros y el
punto
3 Texto Dir_Red Dirección de red 15 CaracteresSe permite solo numeros y el
punto
4 Texto Mascara Máscara de red 15 CaracteresSe permite solo numeros y el
punto
5 Texto Nombre Nombre del nodo 50 Caracteres Se permiten todos los caracteres
6 Texto Clase Clase de la red que contiene al nodo 1 CaracteresSe permiten solo los caracteres
'A', 'B' o 'C'
7 Texto Gateway Dirección IP del Gateway de la red 15 CaracteresSe permite solo numeros y el
punto
8 Entero EstadoMuestra si la PC tiene una especie de
alerta o no4 Numeros
Se permite solo los numeros 0 o
1
9 Entero Id_HistoNúmero de veces que se realiza el
descubrimiento de la red por parte del 4 Numeros Se permite solo numeros
10 Texto FechaFecha en que se guardó la información
del nodo10 Caracteres
Se permite solo numeros y el
carcter '/'
11 Texto HoraHora en que se guardó la información
del nodo8 Caracteres
Se permite solo numeros y el
carcter ':'
TMP_INF_NODO
Temporal de Reportes. Información principal de la PC que va a ser única por cada una de éstas
DICCIONARIO DE DATOS
Anexo Tomo N° II
Cápitulo 3
Manual Técnico
Pág.195
SISTEMA: VscanNet
NOMBRE LOGICO:
DESCRIPCION
NUM TIPO CAMPO DESCRIPCIONFORMATO
TAMAÑO
VALORES
VALIDOSREGLAS DE VALIDACION
1 Texto Dir_Ip
Dirección IP de los nodos de una
subred15 Caracteres Se permite solo numeros y el punto
2 Texto Dir_Red Dirección IP de la subred 15 Caracteres Se permite solo numeros y el punto
3 Texto Mascara Máscara de subred 15 Caracteres Se permite solo numeros y el punto
4 Texto Clase
Clase de la red que contiene al
nodo 1 Caracteres Se permiten solo los caracteres 'A', 'B' o 'C'
TMP_INF_INICIAL
Temporal de Reportes. Guarda información Inicial
DICCIONARIO DE DATOS
Anexo Tomo N° II
Cápitulo 3
Manual Técnico
Pág.196
SISTEMA: VscanNet
NOMBRE LOGICO:
DESCRIPCION
NUM TIPO CAMPO DESCRIPCIONFORMATO
TAMAÑO
VALORES
VALIDOSREGLAS DE VALIDACION
1 Entero Id_Tmp_NodoIdentificador del nodo y relación con
la tabla de los nodos4 Numeros Se permite solo numeros
2 Texto Mem_Fis_Tot Tamaño total de la memoria física 50 Caracteres Se permite solo numeros
3 Texto Mem_Fis_DispTamaño disponible de la memoria
física50 Caracteres Se permite solo numeros
4 Texto Mem_Vir_Tot Total de la memoria virtual 50 Caracteres Se permite solo numeros
5 Texto Mem_Vir_DispTamaño disponible de la memoria
virtual50 Caracteres Se permite solo numeros
6 Texto Mem_Cargada Tamaño de la memoria cargada 50 Caracteres Se permite solo numeros
TMP_INF_MEMORIA
Temporal de Reportes. Almacena información de la memoria de la PC
DICCIONARIO DE DATOS
Anexo Tomo N° II
Cápitulo 3
Manual Técnico
Pág.198
SISTEMA: VscanNet
NOMBRE LOGICO:
DESCRIPCION
NUM TIPO CAMPO DESCRIPCIONFORMATO
TAMAÑO
VALORES
VALIDOSREGLAS DE VALIDACION
1 Entero Id_Tmp_Nodo
Identificador del nodo y relación con
la tabla de los nodos 4 Numeros Se permite solo numeros
2 Texto Nombre
Sistemas operativos con que cuenta
la máquina 20 Caracteres
Se permiten todos los
caracteres
3 Texto Version Versión del sistema operativo 10 Caracteres
Se permiten todos los
caracteres
4 Texto Usuario
Usuario que esta ingresado en el
sistema operativo respectivo 15 Caracteres
Se permiten todos los
caracteres
TMP_INF_SO
Temporal de Reportes. Información de los sistemas operativos de cada máquina
DICCIONARIO DE DATOS
Anexo Tomo N° II
Cápitulo 3
Manual Técnico
Pág.197
SISTEMA: VscanNet
NOMBRE LOGICO:
DESCRIPCION
NUM TIPO CAMPO DESCRIPCIONFORMATO
TAMAÑO
VALORES
VALIDOSREGLAS DE VALIDACION
1 Entero Id_Tmp_NodoIdentificador del nodo y relación
con la tabla de los nodos4 Numeros Se permite solo numeros
2 Texto Nombre Nombre del procesador 50 CaracteresSe permiten todos los
caracteres
3 Texto Porcentaje_Ocupado Porcentaje de uso del procesador 50 Caracteres Se permite solo numeros
TMP_INF_PROCESS
Temporal de Reportes. Guarda Información del o los procesadores del PC
DICCIONARIO DE DATOS
Pág. 204
Top Related