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).
Pingback: Bitacoras.com /
Pingback: BlogESfera.com /