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.

undefined

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++...).

undefined

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

  1. Scaricare un file

    $ curl http://www.spaceclick.com
    per salvare,
    $ curl http://www.spaceclick.com > sc-com.html
  2. 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
  3. 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/
  4. 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
  5. 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
  6. Richiedere più file in contemporanea

    $ curl -O URL1 -O URL2
  7. Limitare la velocità di scaricamento

    $ curl --limit-rate 1000B -O http://www.spaceclick.com/bigfile.ext
    in questo caso limitato a 1000 Bytes/s
  8. Scaricare una serie di file in base ad un pattern di caratteri

    $ curl   ftp://ftp.spaceclick.com/files/[a-z]/
  9. 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
  10. Autenticarsi tramite HTTP (base auth)

    $ curl -u username:password URL
  11. 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
  12. Abilitare la modalità Verbose

    è sufficiente inserire nel comando desiderato l'opzione -v, es:
    $ curl -v http://www.spaceclick.com
  13. Usare il protocollo DICT

    $ curl dict://dict.org/d:bash
  14. 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)
    .
  15. 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!