Script que descarga archivos sin Wget ni Curl

Script que descarga archivos sin Wget ni Curl.

Con el script bash que vemos en este articulo, podrás descargar cualquier archivo o pagina web completa sin tener que usar wget o curl.

Tal vez pienses que es una tontería de script, que para descargar lo que quieres ya tienes wget. Si realmente lo crees, yo te contradigo y ademas te lo argumento, pues no hay nada más fácil que evitar… que descarguen un archivo o una web completa con wget o curl.

Tan simple como una linea en .htaccess:

RewriteCond %{HTTP_USER_AGENT} (libwww-perl|curl|wget|python) [NC,OR]

 

Vemos el script bash que descarga archivos sin wget ni curl.

Script que descarga archivos sin Wget ni Curl 1

 

Script bash que descarga archivos

Creamos el script con nuestro editor preferido, en este caso “nano“.

nano script-descargas.sh

Copia y pega el código siguiente.
#!/bin/bash

if [ "$1" == "" ]
then
echo "usage: $0 URL"
exit 0
fi

HOST=`echo $1 | sed 's/http\:\/\///' | sed -r 's/([^/])\/(.*)/\1/'`
FILENAME=`echo "$1" | sed -r 's/(.*)\/(.*)/\2/'`
PATH=`echo "$1" | sed 's/http\:\/\///' | sed -r "s/$HOST//" | sed "s/$FILENAME//"`
PORT=80
HEADERS="HTTP/1.1\r\nHost: $HOST\r\nConnection: close\r\nContent-Length: 0\r\n\r\n"
F="/tmp/dlfile"
exec 3<>/dev/tcp/$HOST/$PORT
echo -e "GET $PATH$FILENAME $HEADERS" >&3
/bin/cat <&3 > $F
/usr/bin/tail $F -n +$((`/bin/sed $F -e '/^\r$/q' | /usr/bin/wc -l`+1)) > $FILENAME
/bin/rm $F

Una vez pegado el código, guarda y cierra el editor.

 

Le concedemos los permisos correspondientes.

Script que descarga archivos sin Wget ni Curl 2

 

Para descargar un archivo o un sitio web, debes ejecutar el script seguido de la url (separados por un “.“.

bash script-descargas.sh.http://midominio.es/miarchivo.txt

ejemplo…
bash script-descargas.sh.http://es.tinypic.com/view.php?pic=ms15s1&s=9#.Wvq2lnVfhpg

 

Espero te resulte útil (recuerda que no es ético descargar webs completas sin permiso del propietario).

Agregar comentario