===== Formas alternativas de descargar archivos por consola ===== Dependiendo del sistema donde estemos trabajando es posible que no podamos instalar gestores de descarga por determinados motivos. Para ello, mostramos algunas formas de descargar ficheros alternativas con utilidades que se pueden encontrar comúnmente en instalaciones mínimas. **Fichero a descargar**: http://195.122.253.112/public/mp3/Queen/Queen%20%27Mustapha%27.mp3 ==== aria2c ==== aria2c -o temuten.mp3 http://195.122.253.112/public/mp3/Queen/Queen%20%27Mustapha%27.mp3 ==== NetCat ==== echo -ne "GET /public/mp3/Queen/Queen%20%27Mustapha%27.mp3 HTTP/1.0\r\nHost: 195.122.253.112\r\n\r\n" | nc 195.122.253.112 80 | perl -pe 'BEGIN { while (<>) { last if $_ eq "\r\n"; } }' > fichero.mp3 ==== Bash Sockets ==== WGET_HOSTNAME='195.122.253.112' FILE='/public/mp3/Queen/Queen%20%27Mustapha%27.mp3' OUTPUT='file.mp3' exec {HTTP_FD}<>/dev/tcp/${WGET_HOSTNAME}/80 echo -ne 'GET' $FILE 'HTTP/1.1\r\nHost: '\ ${WGET_HOSTNAME}'\r\nUser-Agent: '\ 'bash/'${BASH_VERSION}'\r\n\r\n' >&${HTTP_FD} sed -e '1,/^.$/d' <&${HTTP_FD} > $OUTPUT ==== Python ==== python Python 2.6.6 (r266:84292, Feb 21 2013, 23:54:59) [GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import os,sys,urllib >>> f = open (os.path.basename ("http://195.122.253.112/public/mp3/Queen/Queen%20%27Mustapha%27.mp3"), 'w') >>> f.write (urllib.urlopen ("http://195.122.253.112/public/mp3/Queen/Queen%20%27Mustapha%27.mp3").read ()) >>> f.close () >>> exit Use exit() or Ctrl-D (i.e. EOF) to exit >>> exit() En forma de script. #!/usr/bin/env python import os,sys,urllib f = open (os.path.basename (sys.argv[1]), 'w') f.write (urllib.urlopen (sys.argv[1]).read ()) f.close () python script.py http://195.122.253.112/public/mp3/Queen/Queen%20%27Mustapha%27.mp3 ==== Lynx ==== lynx -source http://195.122.253.112/public/mp3/Queen/Queen%20%27Mustapha%27.mp3 > fichero.mp3 Extraer las direcciones de los enlaces de páginas webs (completa rutas relativas). wget -k "https://downloads.skullsecurity.org/passwords/" lynx -dump index.html | grep -oi "http.*\|ftp.*" > URLs_ficheros ==== Perl ==== #!/usr/bin/perl use LWP::Simple; #-- fetch the zip and save it as perlhowto.zip my $status = getstore("http://195.122.253.112/public/mp3/Queen/Queen%20%27Mustapha%27.mp3", "temuten.mp3"); if ( is_success($status) ) { print "file downloaded correctly\n"; } else { print "error downloading file: $status\n"; } ==== Wget (ignorar robots.txt) ==== wget de manera predeterminada sigue las restricciones impuestas por el fichero robots.txt al usar la opción recursiva "-r". Esto impide la descarga de ficheros enlazados. Se debe indicar la opción "robots=off" para resolver el problema.[[https://www.gnu.org/software/wget/manual/html_node/Robot-Exclusion.html| Leer.]] wget -np --no-clobber --convert-links --random-wait -r -p -E -e robots=off -U mozilla https://downloads.skullsecurity.org/passwords/