Cosa è cUrl
cUrl è un linguaggio di programmazione a oggetti open source, utilissimo nell’ambito di applicazioni web dove è richiesta una forte intercompatibilità tra protocolli e documenti.
In particolare evita allo sviluppatore di dover utilizzare più linguaggi di programmazione, rendendo disponibile in un unico framework una serie funzioni combinate tra linguaggi di markup (HTML o JS) e computazionali (Java, C#, C++…).
cUrl consiste in un package e mette a disposizione tool e command line per operare sul NET usando sintassi URL.
Supporta molti protocolli, come Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, DICT, FILE, FTP, FTPS, Gopher, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet e TFTP.
Il sito ufficiale http://curl.haxx.se/ dove è possibile scaricare i pacchetti.
Inutile dire che gira su praticamente qualsiasi piattaforma.
I comandi da sapere
Scaricare un file
$ curl http://www.spaceclick.com
per salvare,
$ curl http://www.spaceclick.com > sc-com.html
Scaricare un file solo se è stato modificato prima/dopo una certa data
dopo la data,
$ curl -z 20-Dec-14 http://www.spaceclick.com/aprettyfile.html
prima della data,
$ curl -z -20-Dec-14 http://www.spaceclick.com/aprettyfile.html
Scaricare file tramite FTP
$ curl -u ftpuser:ftppass -O ftp://ftpserver/public/abcd.php
per scaricare una cartella,
$ curl -u ftpuser:ftppass -O ftp://ftpserver/public/
Ripristinare download interrotti
per interrompere un download di grandi dimensioni si può usare il Ctrl+C,
poi, per riprendere,
$ curl -C - -O http://www.spaceclick.com/bigfile.ext
Salvare l’output in un file
$ curl -o aprettyfileNAME.html http://www.spaceclick.com/aprettyfile.html
$ curl -O http://www.spaceclick.com/aprettyfile.html
con l’opzione -O il nome sarà lo stesso dell’origine, con -o lo potremmo decidere noi
Richiedere più file in contemporanea
$ curl -O URL1 -O URL2
Limitare la velocità di scaricamento
$ curl --limit-rate 1000B -O http://www.spaceclick.com/bigfile.ext
in questo caso limitato a 1000 Bytes/s
Scaricare una serie di file in base ad un pattern di caratteri
$ curl ftp://ftp.spaceclick.com/files/[a-z]/
Seguire rotte HTTP tramite il loro response
$ curl http://www.spaceclick.com
è possibile forzare a seguire i redirect con l’opzione -L,
$ curl -L http://www.spaceclick.com
Autenticarsi tramite HTTP (base auth)
$ curl -u username:password URL
Caricare file su un server FTP
$ curl -u ftpuser:ftppass -T filename.txt ftp://ftp.server.com
per caricare file multipli,
$ curl -u ftpuser:ftppass -T "{file1,file2}" ftp://ftp.server.com
Abilitare la modalità Verbose
è sufficiente inserire nel comando desiderato l’opzione -v, es:
$ curl -v http://www.spaceclick.com
Usare il protocollo DICT
$ curl dict://dict.org/d:bash
Inviare una mail tramite protocollo SMTP
$ curl --mail-from aname@abcd.com --mail-rcpt foo@xyz.com smtp://mailserver.com
in seguito verranno richiesti oggetto e corpo, inserirli come segue, con il punto come terminatore
Subject: Test invio email (oggetto) Questo è un test di invio (corpo) .
Scaricare un file tramite PROXY
usare l’opzione -x
$ curl -x proxysever.domain.com:3128 http://www.spaceclick.com
Come vedete cUrl è una libreria molto versatile e interessante, fatene buon uso!