LinuxParty

NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.
Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 

Woof (abreviatura de Web Offer One File ) es una aplicación simple para compartir archivos entre hosts en una pequeña red local. Consiste en un pequeño servidor HTTP que puede servir un archivo especificado durante un número determinado de veces (el valor predeterminado es una vez) y luego termina.

(Afortundamente woof es multiplataforma, porque funciona con Python, descargue Python en Windows y configúrelo apropiadamente para poder usarlo )

DEBE de HABILITAR en el cortafuegos el PUERTO 8080, para el intercambio de archivos, en el equipo que ejecute Woof

Por ejemplo para permitir el puerto 8080 en Linux (como root)

iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT

 

Las reglas del cortafuegos (iptables) se guardan en: /etc/sysconfig/iptables
Puedes guardar una copia en  /root,  lo personalizas y cargas tus reglas con:

 

iptables-restore  <  tus-reglas-de-tu-fw.reglas

Para usar woof, simplemente invócalo con un único archivo, y el destinatario puede acceder a tu archivo compartido a través de un navegador web o usando un cliente web de línea de comandos como cURL , HTTPie , wget o kurly (una alternativa curl) desde el terminal .

Una ventaja de woof sobre otras herramientas para compartir archivos es que comparte archivos entre un sistema operativo diferente o diferentes dispositivos (computadoras, teléfonos inteligentes, tabletas, etc.), siempre que el destinatario tenga instalado un navegador web.

En este artículo, mostraremos cómo instalar woof en Linux y usarlo para compartir archivos en una red local.

Cómo instalar y usar Woof en Linux

En Debian y Ubuntu, puede instalar fácilmente el paquete ' woof ' desde los repositorios predeterminados de la distribución usando apt o apt-get package manager como se muestra.

$ sudo apt install woof
O
$ sudo apt-get install woof

En otras distribuciones de Linux, puede descargar el script woof usando el comando wget y moverlo al directorio /usr/local/bin como se muestra.

$ wget http://www.home.unix-ag.org/simon/woof
$ chmod a+x woof $ sudo cp woof /usr/local/bin

Si no copias el archivo en /usr/local/bin, debes invocar woof, con el "./" delante:

./woof archivo.txt

Enviar archivos.

Para compartir (enviando) un archivo, proporciónelo como argumento como se muestra.

$ woof ./bin/bashscripts/getpubip.sh 

Luego, woof generará una URL ( http://192.168.43.31:8080/ en este caso -La IP será la de tu máquina-) que su socio puede usar para acceder al archivo.

Si necesitara enviar varios archivos, lo mejor es comprimirlos y enviarlos (se explica más adelante), pero también puede hacer:

woof ./ruta/archivo1.xxx ; woof ./ruta/archivo2.xxx ; woof ./ruta/archivo3.xxx

 

Compartir archivo con Woof

Enviar la URL al destinatario. Una vez que el destinatario accede al archivo, woof se apagará (vea la siguiente captura de pantalla).

Acceso al archivo compartido a través de Woof

Nota : En el ejemplo anterior, hemos utilizado el descargador de línea de comandos wget para obtener el archivo compartido, y automáticamente asigna al archivo descargado un nombre diferente (por ejemplo, index.html ).

Para especificar un nombre personalizado, use la opción -O como se muestra.

$ wget -O  custom_name http://192.168.43.31:8080

Alternativamente, también puede acceder al archivo compartido desde el navegador web como se muestra (haga clic en Guardar archivo para descargarlo).

Descargar el archivo compartido del navegador web

Descargar el archivo compartido del navegador web

Por defecto, woof comparte el archivo una vez, y después de que el destinatario lo descarga, woof termina. Puede establecer el número de veces que woof comparte un archivo antes de que se apague, utilizando la opción -c .

El siguiente comando terminará woof después de tres descargas.

$ woof -c 3 ./bin/bashscripts/getpubip.sh

Para compartir un directorio, puede crear un tarball y comprimirlo usando ( -z para la compresión gzip, o -j para la compresión bzip2, o -Z para la compresión ZIP). Por ejemplo:

$ woof -c 2 -z ./bin/

Consulte el nombre del archivo de descarga, debe ser un archivo Gzip como se muestra en la siguiente captura de pantalla.

Descargar archivo comprimido de archivo Tar

Descargar archivo comprimido de archivo Tar

Recibir (o traer) un archivos.

En el ordenador de origen (donde está el archivo a traer) hay que abrir la URL / ip que tenemos en el ordenador de destino, para ello basta usar un navegador web cualquiera. El archivo se enviará al equipo de destino automáticamente.

Además, puede usar el indicador -U para indicarle a woof que proporcione un formulario de carga que permita la carga de archivos.

Ideal para que accedan a la IP suya y le envíen el archivo.

El archivo se descargará en el directorio actual desde donde se lanzó Woof:

$ woof -U

Si desea recibir varios ficheros, puede escribir (en este caso 10 )

Directamente en la consola de Linux un bucle con 10 elementos:

for i in {1..10} ; do   woof -U   ; done

 

Para ver el progreso:

 

for i in {1..10} ; do   echo $i; woof -U  ; done

Luego, su socio puede usar la URL generada para acceder al formulario de carga desde un navegador como se muestra.

Formulario de carga de archivos de Woof

Formulario de carga de archivos de Woof

Después de explorar y seleccionar el archivo, haga clic en el botón Cargar para cargar archivos.

Woof File Upload completo

Woof File Upload completo

Recuerde, que solo se puede enviar un archivo por lanzamiento de Woof, por lo que si son muchos, indique que cree un fichero comprimido con todos juntos.

Puede verificar que el archivo debe cargarse en el mismo directorio donde se invocó woof.

Verificar cargas de archivos


Para hacer más usable el programa en teléfonos smartphone, hemos modificado el código de la línea 224 y lo hemos quedado de la siguiente manera.

Código original

   def do_GET (self):
      global maxdownloads, cpid, compressed, upload

      # Form for uploading a file
      if upload:
         txt = b"""\
                 <html>
                   <head><title>Woof Upload</title></head>
                   <body>
                     <h1>Woof Upload</title></h1>
                     <form name="upload" method="POST" enctype="multipart/form-data">
                       <p><input type="file" name="upfile" /></p>
                       <p><input type="submit" value="Upload!" /></p>
                     </form>
                   </body>
                 </html>
               """
         self.send_response (200)
         self.send_header ("Content-Type", "text/html")
         self.send_header ("Content-Length", str (len (txt)))
         self.end_headers ()
         self.wfile.write (txt)
         return

      # Redirect any request to the filename of the file to serve.
      # This hands over the filename to the client.

 Código modificado:

O puede directamete utilizar el código fuente ya modificado desde éste post:

 woof Código fuente  

   def do_GET (self):
      global maxdownloads, cpid, compressed, upload

#         txt = b"""\
#                 <html>
#                   <head><title>Woof Upload</title></head>
#                   <body>
#                     <h1>Woof Upload</title></h1>
#                     <form name="upload" method="POST" enctype="multipart/form-data">
#                       <p><input type="file" name="upfile" /></p>
#                       <p><input type="submit" value="Upload!" /></p>
#                     </form>
#                   </body>
#                 </html>
#               """

      # Form for uploading a file
      if upload:
         txt = b"""\
                 <html>
                   <head><title>Woof Upload</title>
                   </head>
                   <body>
                    <table border="1" cellpadding="1" cellspacing="1" style="height:100%; width:100%">
             	     <tr>
			<td>
                     <h1><span style="font-size:45px">Woof Upload</span></h1>
                         </td>
                     </tr>
                     <tr>
                        <td>
                     <form class="formatoReporte" name="upload" method="POST" enctype="multipart/form-data">
                       <p><input style="font-size:200%" type="file" name="upfile" /></p>
                       <p><input style="font-size:200%" type="submit" value="Upload!" /></p>
                     </form>
                        </td>
                     </tr>
                     </table>
                   </body>
                 </html>
               """
         self.send_response (200)
         self.send_header ("Content-Type", "text/html")
         self.send_header ("Content-Length", str (len (txt)))
         self.end_headers ()
         self.wfile.write (txt)
         return

      # Redirect any request to the filename of the file to serve.
      # This hands over the filename to the client.

O puede directamete utilizar el código fuente ya modificado desde éste post:

 woof Código fuente  


Que deberá copiar en un fichero y darle los permisos de ejecución:
chmod a+x woof

Si tiene conocimientos de HTML, le ruego me sugiera modificaciones, bien escribiendo en los comentarios o si fuera necesario enviado un email a: sugerencias arroba linuxparty punto es


Puede ver más opciones de uso ejecutando:

$ man woof 
O
$ woof -h

Woof es un servidor HTTP pequeño, simple y fácil de usar para compartir archivos en una red de áreas locales. En este artículo, mostramos cómo instalar y usar woof en Linux. Use el formulario de comentarios a continuación para compartir sus opiniones sobre esta herramienta o hacer preguntas

 

No estás registrado para postear comentarios



Redes:



   

 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Formulario de acceso

Filtro por Categorías