/

Servidor Web Para Compartir Archivos Lan

Created 2020-01-08 Modifyed 2020-01-08
275 Words

En más de una ocasión me he encontrado con el problema de necesitar compartir un fichero (normalmente de gran tamaño) en mi red local. Puedes usar los archivos compartidos de windows, linux o mac, y otras veces puede resultar más rápido hacer lo que os voy a explicar a continuación.

El objetivo es, que ejecutando un solo comando, sin parámetros, nuestro programa nos de una url que podamos copiar y pasársela al destinatario por cualquier sistema de mensajería.

Vamos a realizar un pequeño programa en go hará lo siguiente (al final del post tenéis el código y los binarios):

  1. Leeremos si hemos pasado al comando el parametro all-interfaces, en tal caso se listaran todos los interfaces disponibles.

  2. Obtener el path completo de donde estamos a la hora de lanzar el comando. Si por ejemplo estamos en una consola situada en el escritorio de windows nos devolverá algo parecido a c:\Users\miusuario\Desktop.

  3. Recorreremos los interfaces de red, e imprimiremos por la consola las direcciones ips que coincidan con el rango de red que establecimos en la variable rangoIp (si rangoIp lo dejamos en blanco, listará todas las interfaces).

  4. Haremos que echo cree un servidor nuevo y que use un middleware que use como path el directorio que obtuvimos en el paso 2.

  5. Lanzamos el servidor.

Esto nos dará como resultado lo siguiente:

servidor-web-para-compartir-archivos-lan-1

Una vez hecho esto, podremos navegar desde un dispositivo de nuestra red y veremos el contenido de el directorio donde ejecutamos el comando.

servidor-web-para-compartir-archivos-lan-2

Código:

https://gitlab.com/athos.oc/fastsharego

Binarios (no olvideis meter el programa en el path):

FastShareGo para windows

FastShareGo para linux

FastShareGo para Mac