BandaAncha

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 💬 foros ⏎
  • 🔍 en 👇 este 💬 foro ⏎
  • 🔍 en 👇 este 💬 tema ⏎
Regístrate Regístrate Identifícate Identifícate

BAMonitorLan Herramienta de monitorización de Routers Zyxel Serie Prestige

LnkLst

Buenas Tardes:

Como continuación al Post abierto en el Foro de Linux os dejo el enlace para disponer de los fuentes de este pequeño proyecto. ( BAMonitorLan ).

La herramienta realiza una monitorización de este tipo de router obteniendo los datos de la tabla ARP, las conexiones Wlan, el estado y el Download/Upload de la linea avisando, mediante un "globo de aviso" desde un "icon-tray" que se situa en el panel del escritorio, cuando una tarjeta de red se conecta o desconecta del router. En mi caso lo desarrolle para tener controladas las conexiones y evitar ( o al menos conocer) si tenía intrusiones en mi Wlan.

Actualmente solo funciona bajo Linux, auque espero portarlo a Windows.

La intención es recoger comentarios de los usuarios para su mejora.

Las instrucciones de instalación, ejecución son sencillas:

0.- Bajar los fuentes (obvio)

1.- Descomprimir en un directorio a elección (recomiendo crear /home//BAMonitorLan )

2.- Compilar los fuentes de la siguiente manera:

a.- Monitor:

gcc -o BAMonitorLan BAMonitorLan.c -D_LINUX

b.- Icono :

gcc -m64 -g BAMonitorLanicontray.c -o BAMonitorLanicontray -D_LINUX -Wall `pkg-config --cflags gtk+-2.0` `pkg-config --libs gtk+-2.0`

3.- Ejecución: Abrir un "shell" . EL Monitor necesita como variable de entorno la password del router (export routerpass=) y 2 argumentos, la Dirección IP y el directorio donde se grabaran los ficheros de salida.

Ej:

export routerpass=1234
./BAMonitorLan 192.168.1.1 ./ &

A continuación arrancar el programa "icon-tray" desde el directorio (esto es mejorable) donde se escriben los ficheros de salida del programa Monitor

Ej:

./BAMonitorLanicontray &

Se pondrá un incono con un Sr con los "Brazos Bajados" que cambiará si alguna tarjeta nueva se conecta o se desconecta con una ventana de aviso.

Es posible "clickar" con los 2 botones de Ratón para obtener información adicional.

Gracias por vuestra atención y ayuda.

Saludos

Josh

Se compila sin problemas BAMonitorLanicontray.c, el BAMonitorLan.c también me compila, pero salen estos warnings:

josh@josh-desktop:~$ gcc -o BAMonitorLan BAMonitorLan.c -D_LINUX
BAMonitorLan.c: En la función 'main':
BAMonitorLan.c:201: aviso: el formato '%d' espera el tipo 'int', pero el argumento 3 es de tipo 'long int'
BAMonitorLan.c: En la función 'IconTray':
BAMonitorLan.c:232: aviso: el formato '%.6u' espera el tipo 'unsigned int', pero el argumento 3 es de tipo '__suseconds_t'
BAMonitorLan.c:237: aviso: el formato no es una cadena literal y no tiene argumentos de formato
BAMonitorLan.c:252: aviso: el formato no es una cadena literal y no tiene argumentos de formato
BAMonitorLan.c: En la función 'EscribeSYSOUT':
BAMonitorLan.c:827: aviso: el formato '%.6u' espera el tipo 'unsigned int', pero el argumento 3 es de tipo '__suseconds_t'

No he podido probar más pq no tengo un Prestige aquí. Actualizo tu post con una capturita.

Durante la ejecución me salen estos avisos:

No localizo fich. Log ./icontray.log
(BAMonitorLanicontray:8761): Gtk-CRITICAL **: gtk_text_buffer_emit_insert: assertion `g_utf8_validate (text, len, NULL)' failed

La verdad que puede ser muy muy útil para quien quiera tener bien controlado lo que pasa en su router. Gracias por compartirlo.

djnacho

Hola LnkLst :)
Me encanta ver otros programadores en bandaancha (ya sabía yo que Donovan y yo, no estábamos sólos :) )
A ver, te cuento:

Tengo Ubuntu 9.10. En BAMonitorLan, me da los mismos warnings que a Josh. No son nada, ya que se refieren a tipos de variable declarados, que luego a la hora de trabajar con ellos, se ha cambiado el tipo (un warning de lo más normal en C y C++).

En BAMonitorLanicontray, he tenido un problema, del cual me he dado cuenta muy rápido de que pasaba. El primer argumento del compilador, lo tienes como -m64, lo cual le indica al compilador que compile el programa en 64 bits. Al intentar compilar en 64 bits, intenta buscar todas las cabeceras de 64 bits, y como mi ubuntu es de 32 bits, le faltan justo las cabeceras del stub.h de 64 bits.
He cambiado ese argumento por -m32, para obligar al compilador a compilar el programa a 32 bits, y la compilación no ha dado ningún problema.

Lo malo, es que no tengo ADSL, ni ningún router Zyxel, para poder hacer pruebas, pero el programa se ejecuta perfectamente (excepto por las últimas lineas del post de Josh, donde indica que no localiza el fichero de log).

Por mi parte, perfecto :)
Lo único, que tienes que mirar, es la parte del fichero de log, que debe tener algún problema. Voy a mirar el código fuente, y te digo si veo algo.

Un saludo :) y enhorabuena por la herramienta :) :)

🗨️ 4
djnacho

OK :) Creo que ya he visto el fallo. En el fichero BAMonitorLanicontray.c tienes lo siguiente en la función LeerFichero():

if ((fp = fopen(FPLog,"r")) == NULL)
 {
  fprintf(stderr,"No localizo fich. Log %s \n",FPLog);
 }

El problema, viene de que cuando se ejecuta por primera vez el monitor, no existe ningún fichero de log, por eso siempre muestra ese mensaje.
Hay varias soluciones, pero la más "elegante", es que si al abrir el fichero de log, se produce un error (lo normal, es porque no exista), se cree uno nuevo, avisando al usuario del incidente. De esa forma, si existe el fichero de log, lo abre, y si no existe lo crea, de forma, que el programa puede trabajar con el fichero de log, desde el primer momento.

Espero no ser demasiado pesado, y haberte ayudado un poco ;) :)

Un saludo :)

🗨️ 1
LnkLst

Cualquier comentario será bien recibido. Gracias

LnkLst

Me siento realmente abrumado, :) (el padre de BASpeed me felicita !!!). Muchas gracias.

Estoy ya preparando una nueva versión para quitar el fichero intermedio. Estoy pensado en Colas / memoria compartida o Tuberias, aparte de que el Monitor Principal sea el que arranque el "icon-tray" cuando obtenga la conectividad y corregir un par de "bichos" que tiene.

Voy ademas a añadir un par de medidas que me sugirio Josh (SNR y tonos).

Los warnings GTK son porque faltan los iconos o no los localiza. Como no tenía ninguno apunte a los iconos de estandar de GNome /usr/share/icons/gnome/scalable/apps/. El IconBA es la copia del logo de BandaAncha que no lo puse.

Espero que la V020 tenga ademas un instalador para hacerlo mas sencillo y también estoy trabajando con la parte Windows.

Gracias por vuestra atención

🗨️ 1
djnacho

No te sientas abrumado ;) A mi me paso lo mismo con la primera versión de BASpeed, y aquí estamos ;) Lo importante es ser humilde, aprender de los errores, y mejorar siempre :)

Siempre es bueno felicitar a aquellos, que ponen herramientas gratuitas (y en tu caso open source, lo cual tiene más mérito todavía), a disposición de todos los usuarios, para que les faciliten la vida con sus PC's (o en este caso, con sus routers).

Y las gracias, te las tenemos que dar a ti :) :) Gracias por ofrecer tu esfuerzo, a todos los usuarios :)

Un saludo :) y a seguir en ello :)

Ari

Todo lo que podía decir ya lo ha dicho djnacho, muy bien dicho además, así que solo me resta darte las gracias y la enhorabuena por el trabajo.

Tengo un Zyxel prestige 660 HW-D1. No te prometo nada, los días de semana, y muchas veces los fines de semana también, para mi son infernales en cuanto a trabajo pero al menos intentaré probarlo este fin de semana :)

Saludos y muchísimas gracias por tu generoso esfuerzo :)

🗨️ 6
LnkLst

Ari, personas con tu actitud son las que me hacen creer aún en el ser humano. :P

LnkLst

Una pregunta: Esto serían los "tonos" y SNR??

router> wan adsl linedata far

noise margin upstream: 29 db
output power downstream: 22 db
attenuation upstream: 4 db
carrier load: number of bits per symbol(tone)
tone   0- 31: 00 00 00 02 35 67 77 88 88 99 99 98 88 77 64 32
tone  32- 63: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
tone  64- 95: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
tone  96-127: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
tone 128-159: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
tone 160-191: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
tone 192-223: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
tone 224-255: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
tone 256-287: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
tone 288-319: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
tone 320-351: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
tone 352-383: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
tone 384-415: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
tone 416-447: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
tone 448-479: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
tone 480-511: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

router> wan adsl linedata near

noise margin downstream: 22 db
output power upstream: 12 db
attenuation downstream: 14 db
carrier load: number of bits per symbol(tone)
tone   0- 31: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
tone  32- 63: 00 00 02 23 33 44 55 66 67 78 88 99 99 99 9a aa
tone  64- 95: aa aa aa aa aa aa a9 a9 aa aa aa aa aa aa aa aa
tone  96-127: aa aa aa aa aa aa aa aa aa aa aa aa aa 99 99 99
tone 128-159: 99 99 99 99 89 99 99 99 99 99 99 99 99 99 99 99
tone 160-191: 99 99 99 99 99 99 99 99 99 99 98 99 98 98 88 98
tone 192-223: 88 88 88 88 88 88 88 88 88 88 88 88 88 88 89 98
tone 224-255: 88 88 88 28 88 88 88 88 88 88 88 88 88 88 88 88
tone 256-287: 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88
tone 288-319: 88 88 88 77 88 87 77 88 88 87 87 77 77 78 87 77
tone 320-351: 77 77 77 77 77 87 77 77 77 77 77 77 77 77 77 77
tone 352-383: 76 77 77 76 66 76 76 66 67 66 66 66 66 66 66 66
tone 384-415: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66
tone 416-447: 66 66 66 56 66 55 55 55 55 55 55 55 55 55 55 55
tone 448-479: 54 55 55 44 44 44 44 44 44 44 44 33 33 33 33 33
tone 480-511: 33 33 33 33 33 33 33 33 33 22 22 22 22 22 22 22
🗨️ 4
Ari

Sí, son los datos de atenuación y snr de tu línea, o de la línea de la que hayas sacado los datos. Y los tonos que está usando por cada canal :)

Muy amable, por tus palabras :) Aunque intentaré ayudarte como pueda no se puede decir de mi, precisamente, que sea un power user: no has tenido mucha suerte en ese aspecto, me temo :D

Saludos

djnacho

¿Alguna novedad? Es que me pica la curiosidad de ver si has avanzado algo con el programilla ;)
Un saludo :)

🗨️ 2
LnkLst

Tenemos avanzado un nuevo proyecto (en v.0.0.7.1) ..... :D

🗨️ 1