Archivo

Entradas Etiquetadas ‘scripts’

Intercambiar mensajes en red local [ solución rápida con netcat y kdialog ]

Sábado, 23 de Octubre de 2010 Gaspar Fernández Sin comentarios

A veces tenemos la necesidad de, en la propia red local intercambiar algún mensaje de texto, ya sea una dirección web o algo así. Muchas veces se opta por enviar un e-mail, aunque aquí traigo una propuesta interesante. No para uso diario, pero para uso puntual cuando no tenemos nada a mano, o para estudiar el método.

Actualmente usa netcat y KDE (para la petición de datos de forma gráfica).

Con netcat sólo bastaría. En un ordenador ponemos:

$ netcat -l -p 6517

Actuaría como servidor escuchando por el puerto 6517 (he usado este puerto, porque creo que no hay ningún servicio definido en este lugar), luego en otro ordenador podemos escribir:

$ netcat [IP/host del primer ordenador] 6517

Con lo que conectaríamos con el otro ordenador. Es una conexión no cifrada, con lo que en este punto no estamos hablando de seguridad, sólo de un “apaño”.

Pero bueno, aunque sea un apaño no tiene por qué ser demasiado feo, así que vamos a acompañarlo de unos diálogos (con kdialog) y a hacer unos scripts que nos permitan iniciar netcat de forma fácil (incluso vincularlo a una tecla de nuestro sistema).

[ enviamensaje ]

1
2
3
4
5
host=`kdialog --inputbox "A que host quieres enviar un mensaje"`
mensaje=`kdialog --inputbox "Escribe el mensaje"`

# Puerto 6517 sin asignar
echo "$mensaje" | netcat -c $host 6517

Desde este archivo preguntamos al usuario el host con el que quiere hablar, y luego se le pide introducir el mensaje, que se mandará por netcat ( -c vale para que la conexión se cierre cuando se termine de enviar el mensaje )

[ recibemensaje ]

1
2
3
4
5
6
7
8
9
10
while read input
do
        kdialog --textinputbox "Alguien te manda algo" "$input" 2>&1 1>/dev/null;
        if [[ "$?" != "0" ]]
        then
                break;
        fi
done

echo "FIN DEL PROGRAMA"

Con este script escribiremos en un diálogo con kdialog el texto recibido por el mensaje. netcat nos pasará por su salida estándar el contenido del mensaje, así que tendremos que leerlo con read

Si aceptamos la ventana dejaremos de esperar mensajes.

[ servidormensajes ]

1
2
3
4
5
6
7
8
9
while (( 1 ))
do
        netcat -l -p 6517 -e ./recibemensaje
        kdialog --yesno "Desconectar servidor?"
        if [[ "$?" == "0" ]]
        then
                break;
        fi
done

Desde aquí ponemos el socket en escucha ( -l = listen ) en el puerto 6517 y lo que recibamos se lo pasamos al script recibemensaje; una vez que esto termine nos preguntará si queremos cerrar el servidor o estamos esperando mensajes de alguien más.

Ahora sólo tenemos que vincular a alguna tecla los script servidormensajes y enviamensaje con lo que podremos comunicarnos con las personas de nuestra red local sin problema. El programa también funcionará por Internet, si tenemos los puertos necesarios abiertos y redireccionados en el router (si usamos router) o nuestro firewall no restringe las conexiones por el puerto 6517 (aunque podemos cambiarlo).

La web a mi gusto: Descargar contenidos de Moodle rápidamente

Viernes, 12 de Febrero de 2010 Gaspar Fernández Sin comentarios

Quiero continuar con una serie de posts que llevarán una temática parecida: muchas páginas web funcionan de una forma fija, pero a mí me incomoda bastante esa forma de funcionar, pero como necesito cubrir mis necesidades, intento que funcionen como yo quiero.
Tras esa gran descripción, quiero introducir mi problema:
Moodle es un sistema ampliamente aceptado como solución web académica, tiene muchas opciones y está muy bien, personalmente, en la Universidad, los profesores cuelgan apuntes, ejercicios y más material a la web, lo malo es que cuando llego a una página, me gusta descargar a mi disco duro todos los contenidos (pdfs, documentos, etc), y para ello invierto mucho tiempo.
Para ello viene bien una extensión para Firefox: Chickenfoot, también podemos utilizar Greasemonkey (también hay extensiones para IE y Safari).

Sin más preámbulos, el script utilizado para que Moodle descargue los contenidos más rápido es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
var alltags = new Array();

function detecta_pdf(cont)
{
  var url_match = /https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?/;
  var contenido=cont.match(url_match);
  document.location=contenido[0];
}

function pdfplay(que)
{
  var cont=que.innerHTML;
  que.innerHTML='';
  detecta_pdf(cont);  
}

function CogeElementoPorClase(tipo, clase, quehacer)
{
  var alltags=document.getElementsByTagName(tipo);

  for (i=0; i<alltags.length; i++)
  {
    if (alltags[i].className==clase)
    {
    quehacer(alltags[i]);
    }
  }
}

CogeElementoPorClase('div', 'resourcepdf', pdfplay);

La función CogeElementoPorClase() es la misma que utilicé en este post anterior para modificar la web de mi proveedor de hosting.

Tras ello debemos crear un trigger, es decir será el evento con el que se disparará automáticamente el script que acabamos de hacer; por ejemplo, para la Universidad de Málaga podemos decir que el script se dispare cuando la página a la que accedemos sea: http://*.cv.uma.es/mod/resource/view.php?id=*.

En principio el script fue pensado para los PDFs (el acrobat reader tarda bastante en abrirse cuando tienes que abrir más de 10 PDFs), pero puede servir para cualquier contenido. Por otra parte, aunque no está muy optimizado (la necesidad me llevó a hacer el script rápidamente) espero que os sea útil.

Fluxbox + KDE

Jueves, 11 de Junio de 2009 Gaspar Fernández 4 comentarios
Fluxbox

Fluxbox, un gestor de ventanas ligero, personalizable y productivo

Éste es mi escritorio normalmente, desde hace años utilizo Fluxbox como gestor de ventanas, entre otras cosas por lo ligero que es, y permite utilizar teclas para todo: acciones comunes como lanzar programas, cambiar de escritorio hasta cambiar la capa donde está la ventana, moverla o redimensionarla.

Por otra parte, no es que tenga configuración gráfica ni nada, todo va por archivos de texto, al principio impone, pero una vez que te acostumbras no cuesta nada abrir un editor de texto para configurar las teclas, es una sintaxis muy sencilla, por lo que tiene muchas posibilidades. Y todo esto hace verdaderamente sencillo programarse ciertos scripts para acciones comunes (aunque por ejemplo, muchas cosas que vienen de serie con KDE o Gnome, por ejemplo uso de teclas multimedia, tienes que programártelo tú). En futuros posts publicaré algunos de los scripts.

La mayoría de las aplicaciones que me gustan y que más utilizo son para KDE (he pensado alguna vez en cambiarme, pero aún no), y casi siempre tengo un Konqueror y Kontact en ejecución; en la Slit (barra de la derecha) tengo mini aplicaciones muy útiles (más adelante listo todo lo que se ve).

Aplicaciones que se ven en la captura:

  • Fluxbox - Este gran gestor de ventanas
  • Xpad - Programa para los post-its de escritorio (usa GTK)
  • Kontact - Gestiona contactos, citas, reuniones, tareas, etc…
  • Konqueror - Gestor de archivos y navegador web
  • Xterm - Terminal
  • Gimp - Editor de imágenes… está escondido.
  • Pidgin - Mensajería instantánea… también está escondido
  • Gkrellm - Está a la derecha, es un monitor de sistema
  • Gkrellm Wifi - Monitor Wifi para Gkrellm (La página ya no existe, pero podemos encontrar el proyecto, tal vez en el repositorio de nuestra distribución)
  • Wmcalc - Calculadora rápida, sólo poniendo el ratón encima podemos escribir las operaciones y sale el resultado
  • Wmwork - Gestor de tiempo de trabajo, muy pequeño y útil
  • Wmsmixer - Mezclador de sonido
  • Dwgo - Don’t want to go outside, nos dice la temperatura y las condiciones climáticas en espacio reducido (en desarrollo). Éste último es mío :)

Visita otras webs de la red