Instrumente de linie de comandă pentru dezvoltatori web. Scrierea cererilor HTTP cu Curl
De multe ori trebuie să descărcam diverse fișiere de pe Internet, de exemplu, fișiere executabile programe, fișiere script, arhive sursă. Dar acest lucru nu trebuie făcut întotdeauna prin intermediul browserului. În multe situații este mult mai ușor să efectuați toate acțiunile prin intermediul terminalului. Pentru că astfel poți automatiza procesul. Pe de altă parte, webmasterii din când în când trebuie să testeze accesibilitatea site-ului web, să verifice anteturile trimise și primite și multe altele.
Pentru a rezolva astfel de probleme și probleme dintr-o gamă similară, puteți utiliza utilitarul curl. Vă permite să rezolvați o gamă mult mai largă de probleme, inclusiv simularea acțiunilor utilizatorului pe site. În acest articol ne vom uita la cum să folosiți curl, ce este și de ce este necesar acest program.
De fapt, curl este mai mult decât un utilitar de linie de comandă pentru Linux sau Windows. Acesta este un set de biblioteci care se implementează capabilități de bază lucrul cu pagini URL și transferarea fișierelor. Biblioteca acceptă lucrul cu protocoale: FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, LDAP, precum și POP3, IMAP și SMTP. Este excelent pentru a simula acțiunile utilizatorului pe pagini și alte operațiuni cu adrese URL.
Suportul pentru biblioteca curl a fost adăugat la multe limbaje și platforme de programare diferite. Utilitarul curl este un înveliș independent pentru această bibliotecă. Este acest utilitar pe care ne vom concentra în acest articol.
comanda curl
Înainte de a trece la o descriere a modului în care poate fi utilizată comanda curl linux, să ne uităm la utilitarul în sine și la opțiunile sale principale de care vom avea nevoie. Sintaxa utilitarului este foarte simplă:
link pentru opțiuni curl $
Acum să ne uităm la opțiunile principale:
- -# - afișați o bară de progres simplă în timpul încărcării;
- -0 - utilizați protocolul http 1.0;
- -1 - utilizați protocolul de criptare tlsv1;
- -2 - utilizați sslv2;
- -3 - utilizați sslv3;
- -4 - utilizați ipv4;
- -6 - utilizați ipv6;
- -O- indicați USER_AGENT;
- -b- salvați cookie într-un fișier;
- -c- trimite Cookie către server dintr-un fișier;
- -C- continua descărcarea fișierului de la punctul de întrerupere sau offset specificat;
- -m- timp maxim de asteptare pentru un raspuns de la server;
- -d- trimite datele folosind metoda POST;
- -D- salvați anteturile returnate de server într-un fișier;
- -e- setați câmpul Referer-uri, indicând de ce site provine utilizatorul;
- -E- utilizați un certificat SSL extern;
- -f- nu afisati mesaje de eroare;
- -F- trimite datele sub forma unui formular;
- -G- dacă această opțiune este activată, atunci toate datele specificate în opțiunea -d vor fi transmise folosind metoda GET;
- -H- transfera antete pe server;
- -Eu- primiți doar antetul HTTP și ignorați întregul conținut al paginii;
- -j- citeste si trimite cookie-uri dintr-un fisier;
- -J- eliminați antetul din cerere;
- -L- acceptă și procesează redirecționări;
- -s - cantitate maxima redirecționări folosind locație;
- -o- scoaterea conținutului paginii într-un fișier;
- -O- salvarea conținutului într-un fișier cu numele paginii sau al fișierului de pe server;
- -p- utilizați un proxy;
- --proto- indicați protocolul care trebuie utilizat;
- -R- salvați ultima oră de modificare a unui fișier de la distanță;
- -s- afișarea unui minim de informații despre erori;
- -S- afișarea mesajelor de eroare;
- -T- încărcați fișierul pe server;
- -v- rezultatul cel mai detaliat;
- -y- viteza minima de download;
- -Y - viteza maxima descărcări;
- -z- descărcați fișierul numai dacă a fost modificat mai târziu decât ora specificată;
- -V- afișați versiunea.
Acestea nu sunt în niciun caz toate opțiunile pentru curl linux, dar listează elementele de bază pe care va trebui să le utilizați.
Cum se folosește curl?
Am acoperit tot ce ține de teoria lucrului cu utilitarul curl, acum este timpul să trecem la practică și să privim exemple ale comenzii curl.
Cea mai comună sarcină este aceasta. Descărcarea fișierului este foarte simplă. Pentru a face acest lucru, trebuie doar să transmiteți numele fișierului sau pagina html utilitarului în parametri:
curl https://raw.githubusercontent.com/curl/curl/master/README.md
Dar aici vă așteaptă o surpriză: întregul conținut al fișierului va fi trimis către ieșire standard. Pentru a-l scrie în orice fișier, utilizați:
curl -o readme.txt https://raw.githubusercontent.com/curl/curl/master/README.md
Și dacă doriți ca fișierul rezultat să fie numit la fel ca fișierul de pe server, utilizați opțiunea -O:
curl -O https://raw.githubusercontent.com/curl/curl/master/README.md
curl -# -C - -O https://cdn.kernel.org/pub/linux/kernel/v4.x/testing/linux-4.11-rc7.tar.xz
Dacă este necesar, puteți descărca mai multe fișiere cu o singură comandă:
curl -O https://raw.githubusercontent.com/curl/curl/master/README.md -O https://raw.githubusercontent.com/curl/curl/master/README
Un alt lucru care poate fi util pentru un administrator este să descarce un fișier numai dacă acesta a fost modificat:
curl -z 21-Dec-17 https://raw.githubusercontent.com/curl/curl/master/README.md -O https://raw.githubusercontent.com/curl/curl/master/README
Limită de viteză
Puteți limita viteza de descărcare la limita necesară pentru a nu supraîncărca rețeaua folosind opțiunea -Y:
curl --limit-rate 50K -O https://cdn.kernel.org/pub/linux/kernel/v4.x/testing/linux-4.11-rc7.tar.xz
Aici trebuie să specificați numărul de kiloocteți pe secundă care pot fi descărcați. De asemenea, puteți închide conexiunea dacă viteza nu este suficientă, utilizați opțiunea -Y pentru a face acest lucru:
curl -Y 100 -O https://raw.githubusercontent.com/curl/curl/master/README.md
Transferarea fișierelor
curl -T login.txt ftp://speedtest.tele2.net/upload/
Sau să verificăm dacă fișierul este trimis prin HTTP, există un serviciu special pentru aceasta:
curl -T ~/login.txt http://posttestserver.com/post.php
În răspuns, utilitarul vă va spune unde puteți găsi fișierul descărcat.
Se trimite date POST
Puteți trimite nu numai fișiere, ci și orice date folosind metoda POST. Permiteți-mi să vă reamintesc că această metodă este folosită pentru a trimite date de diferite forme. Pentru a trimite o astfel de solicitare, utilizați opțiunea -d. Pentru testare vom folosi același serviciu:
curl -d "field1=val&fileld2=val1"http://posttestserver.com/post.php
Dacă nu sunteți mulțumit de această opțiune de trimitere, puteți pretinde că trimiteți formularul. Există o opțiune pentru aceasta -F:
curl -F "parolă=@pass;type=text/plain" http://posttestserver.com/post.php
Aici trecem campul de parola cu formularul ca text simplu, la fel poti trece mai multi parametri.
Trimiterea și primirea cookie-urilor
Cookie-urile sunt folosite de site-uri web pentru a stoca anumite informații din partea utilizatorului. Acest lucru poate fi necesar, de exemplu, pentru autentificare. Puteți accepta și trimite cookie-uri folosind curl. Pentru a salva cookie-urile primite într-un fișier, utilizați opțiunea -c:
curl -c cookie.txt http://posttestserver.com/post.php
Apoi puteți trimite cookie-ul curl înapoi:
curl -b cookie.txt http://posttestserver.com/post.php
Transmiterea și analiza antetului
Nu întotdeauna avem nevoie de conținutul paginii. Uneori doar titlurile pot fi interesante. Pentru a le afișa numai acestea există opțiunea -I:
curl -I https://site
Și opțiunea -H vă permite să trimiteți mai multe sau mai multe către server, de exemplu, puteți trece antetul If-Modified-Since astfel încât pagina să fie returnată doar dacă a fost modificată:
autentificare curl
Dacă serverul necesită unul dintre tipurile comune de autentificare, cum ar fi HTTP Basic sau FTP, atunci curl poate gestiona această sarcină foarte ușor. Pentru a specifica detaliile de autentificare, pur și simplu le specificați separate prin două puncte în opțiunea -u:
curl -u ftpuser:ftppass -T - ftp://ftp.testserver.com/myfile_1.txt
Autentificarea pe serverele HTTP va fi efectuată în același mod.
Folosind un proxy
Dacă trebuie să utilizați un server proxy pentru a descărca fișiere, atunci și acest lucru este foarte simplu. Este suficient să specificați adresa serverului proxy în opțiunea -x:
curl -x proxysever.test.com:3128 http://google.co.in
Concluzii
În acest articol, am analizat cum să folosiți curl, de ce este necesar acest utilitar și principalele sale capacități. În ciuda asemănărilor lor cu, ele sunt foarte diferite. Comanda curl linux este concepută mai mult pentru analiza și simularea diferitelor acțiuni pe server, în timp ce wget este mai potrivit pentru descărcarea fișierelor și accesarea cu crawlere a site-urilor.
c URL-ul este foarte instrument util linie de comandă pentru a transfera date de la sau către server. Curl acceptă diverse protocoale, cum ar fi FILE, HTTP, HTTPS, IMAP, IMAPS, LDAP, DICT, LDAPS, TELNET, FTPS, GOPHER, RTMP, RTSP, SCP, SFTP, POP3, POP3S, SMB, SMBS, SMTP, SMTPS și TFTP .
cURL poate fi folosit într-o varietate de moduri diferite și interesante. Cu acest instrument, puteți să descărcați, să încărcați și să gestionați fișiere, să vă verificați adresa de e-mail sau chiar să vă actualizați starea pe unele site-uri de social media sau să verificați vremea de afară. În acest articol, ne vom uita la cele cinci utilizări cele mai utile și de bază ale instrumentului cURL pe orice .
1. Verificați adresa URL
Una dintre cele mai comune și mai simple utilizări ale cURL este tipărirea comenzii în sine, urmată de adresa URL pe care doriți să o testați
Curl https://domain.ru
Această comandă va afișa conținutul adresei URL pe terminalul dvs
2. Salvați rezultatul URL într-un fișier
Site-ul Curl -o https://domain.ru % Total % Primit % Xferd Viteză medie Timp Timp Timp Descărcare curent Încărcare Total cheltuit Viteza stângă 100 41793 0 41793 0 0 275k 0 --:--:-- - -:-- :-- --:--:-- 2,9M
În acest exemplu, rezultatul va fi salvat într-un fișier numit „website” în directorul de lucru curent.
3. Încărcarea fișierelor utilizând Curl
Puteți descărca fișiere folosind Curl adăugând opțiunea -o la comandă. Este folosit pentru a salva fișiere pe serverul local cu aceleași nume ca pe serverul la distanță
Curl -O https://domain.ru/file.zip
În acest exemplu, arhiva „file.zip” va fi descărcată în directorul de lucru curent.
De asemenea, puteți încărca un fișier cu un alt nume adăugând opțiunea -o la cURL.
Curl -o archive.zip https://domain.ru/file.zip
Deci arhiva „file.zip” va fi descărcată și salvată ca „Archive.zip”.
cURL poate fi folosit și pentru a descărca mai multe fișiere simultan, așa cum se arată în exemplul de mai jos
Curl -O https://domain.ru/file.zip -O https://domain.com/file2.zip
Curl poate fi folosit și pentru a încărca fișiere în siguranță prin SSH folosind următoarea comandă
Curl -u user sftp://server.domain.ru/path/to/file
Vă rugăm să rețineți că trebuie să utilizați calea completă către fișierul pe care doriți să îl descărcați
4. Preluați informații din antetul HTTP al site-ului web
Puteți obține cu ușurință informații despre antetul HTTP de pe orice site web, adăugând opțiunea -I („i”) la cURL.
Curl -I http://domain.ru HTTP/1.1 200 OK Data: Duminica, 16 Oct 2016 23:37:15 GMT Server: Apache/2.4.23 (Unix) X-Powered-By: PHP/5.6.24 Conexiune : close Content-Type: text/html; set de caractere=UTF-8
5. Acces la serverul FTP
Pentru a accesa serverul FTP de la folosind Curl, trebuie să utilizați următoarea comandă
Curl ftp://ftp.domain.ru --user username:parola
Curl se va conecta la serverul FTP și va lista toate fișierele și directoarele din directorul principal al utilizatorului
Puteți descărca fișierul folosind FTP
Curl ftp://ftp.domain.ru/file.zip --user username:parola
și încărcați fișierul pe serverul FTP
Curl -T file.zip ftp://ftp.domain.ru/ --user username:parola
Puteți verifica manual pagina Curl pentru a vedea totul opțiunile disponibile cURL și funcționalitatea acestuia
Omul curl
PS. Dacă ți-a plăcut această postare, te rog să o distribui prietenilor tăi rețelele sociale folosind butoanele de mai jos sau pur și simplu lăsați un comentariu. Multumesc.
ondulare (1)NUME
curl - transferați o adresă URLREZUMAT
răsuciDESCRIERE
răsuci este un instrument de transfer de date de la sau către un server, folosind unul dintre protocoalele acceptate (HTTP, HTTPS, FTP, FTPS, TFTP, DICT, TELNET, LDAP sau FILE). Comanda este proiectată să funcționeze fără interacțiunea utilizatorului.curl oferă o mulțime de trucuri utile, cum ar fi suport proxy, autentificarea utilizatorului, încărcare ftp, Postare HTTP, conexiuni SSL (https:), cookie-uri, reluarea transferului de fișiere și multe altele. După cum veți vedea mai jos, numărul de caracteristici vă va face capul să se învârtă!
curl este alimentat de libcurl pentru toate caracteristicile legate de transfer. Consultați (3) pentru detalii.
URL
Sintaxa URL este dependentă de protocol. Veți găsi o descriere detaliată în RFC 3986.Puteți specifica mai multe adrese URL sau părți ale adreselor URL scriind seturi de părți între acolade, ca în:
sau puteți obține secvențe de serii alfanumerice folosind ca în:
Momentan, nu este acceptată imbricarea secvențelor, dar puteți folosi mai multe unele lângă altele:
Puteți specifica orice cantitate de adrese URL pe linie de comandă. Acestea vor fi preluate într-o manieră secvențială, în ordinea specificată.
De la curl 7.15.1, puteți specifica, de asemenea, contorul de pași pentru intervale, astfel încât să puteți obține fiecare a N-a număr sau literă:
Dacă specificați URL fără prefix protocol://, curl va încerca să ghicească ce protocol doriți. Apoi va fi implicit HTTP, dar va încerca alte protocoale bazate pe prefixele de nume de gazdă folosite des. De exemplu, pentru numele de gazdă care încep cu „ftp”. curl va presupune că doriți să vorbiți FTP.
CONTORUL PROGRESULUI
curl afișează în mod normal un contor de progres în timpul operațiunilor, indicând cantitatea de date transferate, vitezele de transfer și timpul estimat rămas etc.Cu toate acestea, deoarece curl afișează datele în terminal în mod implicit, dacă invocați curl pentru a face o operație și este pe cale să scrie date în terminal, acesta dezactivează contorul de progres, altfel ar da greșit contorul de progres de amestecare de ieșire și datele de răspuns.
Dacă doriți un contor de progres pentru solicitările HTTP POST sau PUT, trebuie să redirecționați rezultatul răspunsului către un fișier, folosind redirecționarea shell (>), -o sau similar.
Nu este același caz pentru încărcarea FTP, deoarece acea operațiune nu emite date de răspuns către terminal.
Dacă preferați o „bară” de progres în loc de contorul obișnuit, -# este prietenul tău.
OPȚIUNI
-a/--append (FTP) Când este utilizat într-o încărcare FTP, aceasta îi va spune curl să atașeze fișierului țintă în loc să-l suprascrie. Dacă fișierul nu există, acesta va fi creat.Dacă această opțiune este folosită de două ori, a doua va dezactiva din nou modul de adăugare.
varianta desigur. Dacă această opțiune este setată de mai multe ori, ultima va fi cea care este folosită. --anyauth (HTTP) Îi spune lui curl să descopere singur metoda de autentificare și să folosească cea mai sigură pe care site-ul la distanță susține că o acceptă. Acest lucru se realizează mai întâi prin efectuarea unei cereri și verificarea antetelor de răspuns, inducând astfel o călătorie dus-întors în rețea. Aceasta este utilizată în loc de a seta o metodă de autentificare specifică, pe care o puteți face., --de bază, --digera--ntlm , și.
--negocia
Dacă această opțiune este folosită de mai multe ori, următoarele apariții nu fac nicio diferență.
(HTTP) Transmite datele către serverul HTTP ca cookie. Se presupune că sunt datele primite anterior de la server într-o linie „Set-Cookie:”. Datele trebuie să fie în formatul „NUME1=VALOARE1; NUME2=VALOARE2”. Dacă nu este folosită nicio literă „=" în linie, aceasta este tratată ca un nume de fișier de utilizat pentru a citi liniile cookie stocate anterior, care ar trebui să fie folosite în această sesiune dacă se potrivesc. Utilizarea acestei metode activează, de asemenea, „parserul de cookie-uri”, care va face și curl înregistrarea cookie-urilor primite, ceea ce poate fi util dacă îl utilizați în combinație cu-L/--locatie
opţiune. Formatul fișierului din care se citește cookie-urile ar trebui să fie antete HTTP simple sau formatul de fișier cookie Netscape/Mozilla. NOTA cu care fișierul specificat-b/--cookie este folosit doar ca intrare. Nu vor fi stocate cookie-uri în fișier. Pentru a stoca cookie-uri, utilizați-c/--cookie-bor opțiunea sau puteți chiar salva antetele HTTP într-un fișier folosind!
-D/--dump-header
Dacă această opțiune este setată de mai multe ori, ultima va fi cea care este folosită. -B/--use-ascii Activați transferul ASCII când utilizați FTP sau LDAP. Pentru FTP, acest lucru poate fi impus și prin utilizarea unei adrese URL care se termină cu „;type=A”. Această opțiune face ca datele trimise către stdout să fie în modul text pentru sistemele win32. --digera, --de bază Dacă această opțiune este folosită de două ori, a doua va dezactiva utilizarea ASCII. , și).
--basic (HTTP) Spune lui curl să folosească autentificarea de bază HTTP. Aceasta este implicită și această opțiune este de obicei inutilă, cu excepția cazului în care o utilizați pentru a înlocui o opțiune setată anterior care setează o metodă de autentificare diferită (cum ar fi şi Dacă această opțiune este folosită de mai multe ori, următoarele apariții nu fac nicio diferență.
--cifre
(SSL) Specifică ce cifruri să folosească în conexiune. Lista de cifruri trebuie să utilizeze cifruri valide. Citiți detaliile listei de criptare SSL pe această adresă URL:
Dacă această opțiune este folosită de mai multe ori, va fi folosită ultima.
opţiune. Formatul fișierului din care se citește cookie-urile ar trebui să fie antete HTTP simple sau formatul de fișier cookie Netscape/Mozilla. Specificați în ce fișier doriți ca curl să scrie toate cookie-urile după o operațiune finalizată. Curl scrie toate modulele cookie citite anterior dintr-un fișier specificat, precum și toate modulele cookie primite de la serverele de la distanță. Dacă nu se cunosc cookie-uri, nu va fi scris niciun fișier. Fișierul va fi scris folosind formatul de fișier cookie Netscape. Dacă setați numele fișierului la o singură liniuță, „-”, cookie-urile vor fi scrise în stdout.
Dacă borcanul pentru cookie-uri nu poate fi creat sau scris, întreaga operațiune de curl nu va eșua și nici măcar nu va raporta o eroare în mod clar. Folosind -v se va afișa un avertisment, dar acesta este singurul feedback vizibil pe care îl obțineți despre această situație posibil letală.
-C/--continuare-at
Continuați/Reluați un transfer de fișiere anterior la offset-ul dat. Offset-ul dat este numărul exact de octeți care vor fi săriți numărați de la începutul fișierului sursă înainte ca acesta să fie transferat la destinație. Dacă este folosită cu încărcări, comanda serverului ftp SIZE nu va fi folosită de curl.
Folosiți „-C -” pentru a-i spune lui curl să afle automat unde/cum să reia transferul. Apoi folosește fișierele de ieșire/intrare date pentru a-și da seama. Dacă această opțiune este folosită de mai multe ori, va fi folosită ultima.--create-dirs Când este utilizat împreună cu opțiunea -o, curl va crea ierarhia de directoare locale necesară, după cum este necesar. Această opțiune creează direcțiile menționate cu opțiunea -o, nimic altceva. Dacă numele fișierului -o nu folosește nici un director sau dacă directorul pe care îl menționează există deja, nu va fi creat nici un director.
Pentru a crea directoare la distanță când utilizați FTP, încercați --ftp-create-dirs .--crlf (FTP) Convertiți LF în CRLF la încărcare. Util pentru MVS (OS/390). Dacă această opțiune este folosită de mai multe ori, următoarele apariții nu fac nicio diferență.. Dacă această opțiune este folosită de mai multe ori pe aceeași linie de comandă, piesele de date specificate vor fi îmbinate împreună cu o &-litera de separare. Folosind „-d name=daniel -d skill=lousy” ar genera o bucată de postare care arată ca „Astfel, name=daniel&skill=lousy”.
Dacă începeți datele cu litera @, restul ar trebui să fie un nume de fișier din care să citiți datele sau - dacă doriți ca curl să citească datele din stdin. Conținutul fișierului trebuie să fie deja codificat în url. De asemenea, pot fi specificate mai multe fișiere. Postarea datelor dintr-un fișier numit „foobar” ar fi astfel realizată --date@foobar”.
Pentru a posta date pur binare, ar trebui să utilizați în schimb --data-binary opţiune.
-d/--date este la fel ca --data-ascii.
Dacă această opțiune este folosită de mai multe ori, cele care urmează pe prima vor adăuga date. --data-ascii -d/--date opţiune.
(HTTP) Acesta este un alias pentru Dacă această opțiune este folosită de mai multe ori, cele care urmează pe prima vor adăuga date. --data-ascii--data-binary --data-ascii(HTTP) Aceasta postează date într-un mod similar cu
face, deși atunci când utilizați această opțiune, întregul context al datelor postate este păstrat așa cum este. Dacă doriți să postați un fișier binar fără caracteristica strip-newlines a opțiune, aceasta este pentru tine. Dacă această opțiune este folosită de mai multe ori, cele care urmează pe prima vor adăuga date. --digera, , și Dacă această opțiune este folosită de două ori, a doua va dezactiva utilizarea ASCII. --digest (HTTP) Activează autentificarea HTTP Digest. Aceasta este o autentificare care împiedică trimiterea parolei prin cablu în text clar. Utilizați acest lucru în combinație cu cel normal-u/--utilizator
opțiunea de a seta numele de utilizator și parola. Vezi de asemenea
--anyauth
pentru opțiunile conexe.
Această opțiune este la îndemână atunci când doriți să stocați anteturile pe care vi le trimite un site HTTP. Cookie-urile din anteturi ar putea fi apoi citite într-o a doua invocare curl folosind cu care fișierul specificat opţiune! The este folosit doar ca intrare. Nu vor fi stocate cookie-uri în fișier. Pentru a stoca cookie-uri, utilizați opțiunea este totuși o modalitate mai bună de a stoca cookie-uri.
Când sunt utilizate pe FTP, liniile de răspuns ale serverului ftp sunt considerate „anteturi” și astfel sunt salvate acolo.
Dacă această opțiune este folosită de mai multe ori, va fi folosită ultima.
puteți adăuga „;auto” la adresa URL --referer pentru ca curl să seteze automat adresa URL anterioară atunci când urmează un antet Locație:. Șirul „;auto” poate fi folosit singur, chiar dacă nu setați un --referer inițial.
--lista de motoare
(HTTPS) Specificați numele căii către socket-ul Entropy Gathering Daemon. Socket-ul este folosit pentru a genera motorul aleatoriu pentru conexiunile SSL. Vezi și
opţiune. -E/--cert
Dacă această opțiune este folosită de mai multe ori, va fi folosită ultima.
Versiunea pentru Windows a curl va căuta automat un fișier de certificare CA numit „curl-ca-bundle.crt”, fie în același director ca curl.exe, fie în Directorul de lucru curent, fie în orice folder de-a lungul PATH.
Dacă această opțiune este folosită de mai multe ori, va fi folosită ultima.
fișierul conține multe certificate CA.
Dacă această opțiune este folosită de mai multe ori, va fi folosită ultima.
-f/--fail (HTTP) Eșuează în tăcere (nicio ieșire) la erorile de server. Acest lucru se face de cele mai multe ori astfel pentru a activa mai bine scripturile etc. pentru a face față mai bine încercărilor eșuate. În cazurile normale, când un server HTTP nu reușește să livreze un document, returnează un document HTML care indică acest lucru (care descrie adesea și de ce și mai mult). Acest flag va împiedica curl să scoată asta și va returna eroarea 22.
Dacă această opțiune este folosită de două ori, a doua va dezactiva din nou crearea directorului.
--ftp-method (FTP) Controlează ce metodă ar trebui să folosească curl pentru a ajunge la un fișier pe un server FTP(S). Argumentul metodei ar trebui să fie una dintre următoarele alternative: multicwd curl face o singură operație CWD pentru fiecare parte de cale din adresa URL dată. Pentru ierarhiile profunde, aceasta înseamnă foarte multe comenzi. Acesta este modul în care RFC1738 spune că ar trebui făcut. Acesta este comportamentul implicit, dar cel mai lent.
nocwd curl nu face deloc CWD. curl va face SIZE, RETR, STOR etc și va oferi o cale completă către server pentru toate aceste comenzi. Acesta este cel mai rapid comportament.
--ftp-pasv (FTP) Utilizați PASV când transferați. PASV este comportamentul implicit intern, dar utilizarea acestei opțiuni poate fi folosită pentru a suprascrie o opțiune anterioară --ftp-port. (Adăugat în 7.11.0)
Dacă această opțiune este folosită de mai multe ori, următoarele apariții nu fac nicio diferență.
Ftp-alternativă-la-utilizator
(FTP) Dacă autentificarea cu comenzile USER și PASS eșuează, trimiteți această comandă. Când vă conectați la serverul de transport securizat al Tumbleweed prin FTPS folosind un certificat de client, folosirea „SITE AUTH” va spune serverului să preia numele de utilizator din certificat (Adăugat în 7.15.5) --ftp-skip-pasv-ip ( FTP). Spune-i lui curl să nu folosească adresa IP pe care o sugerează serverul în răspunsul său la comanda PASV a curl atunci când curl conectează conexiunea de date. În schimb, curl va reutiliza aceeași adresă IP pe care o folosește deja pentru conexiunea de control. (Adăugat în 7.14.2)
De exemplu, pentru a trimite fișierul de parolă către server, unde „parolă” este numele câmpului de formular în care va fi introdus /etc/passwd:
Pentru a citi conținutul fișierului din stdin în loc de un fișier, utilizați - unde ar fi trebuit să fie numele fișierului. Acest lucru este valabil atât pentru @, cât și pentru< constructs.
De asemenea, puteți spune lui Curl ce tip de conținut să folosească folosind „type=", într-un mod similar cu:
răsuci-F" [email protected];type=text/html" url.com
răsuci-F „nume=daniel;tip=text/foo” url.com
De asemenea, puteți modifica în mod explicit câmpul de nume al unei părți de încărcare a fișierului setând filename=, astfel:
răsuci-F „file=@localfile;filename=nameinpost” url.com
Vedeți mai multe exemple și detalii în MANUAL.
Această opțiune poate fi folosită de mai multe ori.
-G/--get Când este utilizată, această opțiune va face ca toate datele să fie specificate cu
sau
curl se va asigura că fiecare antet pe care îl adăugați/înlocuiți este trimis cu marcatorul adecvat de sfârșit de linie, astfel încât ar trebui să nu adăugați că, ca parte a conținutului antetului: nu adăugați linii noi sau întoarceri de cărucior, acestea doar vor încurca lucrurile pentru dvs.
Vezi și -A/--user-agent Dacă această opțiune este folosită de două ori, a doua va dezactiva utilizarea ASCII. -e/--referer opțiuni.
Această opțiune poate fi folosită de mai multe ori pentru a adăuga/înlocui/elimina mai multe anteturi.
--ignore-content-length (HTTP) Ignorați antetul Content-Length. Acest lucru este util în special pentru serverele care rulează Apache 1.x, care va raporta lungimea conținutului incorectă pentru fișierele mai mari de 2 gigaocteți.
Dacă această opțiune este folosită de două ori, a doua va dezactiva din nou includerea antetului.
--interfață
Dacă această opțiune este folosită de mai multe ori, fiecare apariție va activa/dezactiva această opțiune. -k/--insecure (SSL) Această opțiune permite în mod explicit curl să efectueze conexiuni și transferuri SSL „nesigure”. Se încearcă securizarea tuturor conexiunilor SSL prin utilizarea pachetului de certificate CA instalat în mod implicit. Acest lucru face ca toate conexiunile considerate „nesigure” să eșueze dacă nu-k/--nesigur
este folosit.
--cheie
(SSL) Tip de fișier cu cheie privată. Specificați ce tip dvs
cu condiția cheie privată este. DER, PEM și ENG sunt acceptate. Dacă această opțiune este folosită de mai multe ori, va fi folosită ultima.--krb4
(FTP) Activați autentificarea și utilizarea kerberos4. Nivelul trebuie introdus și ar trebui să fie unul dintre „clar”, „sigur”, „confidențial” sau „privat”. Dacă utilizați un nivel care nu este unul dintre acestea, va fi folosit în schimb „privat”.
-V/--versiunea
pentru a vedea dacă bucla o susține. Dacă această opțiune este folosită de mai multe ori, va fi folosită ultima.-K/--config
Specificați din ce fișier de configurare să citiți argumentele curl. Fișierul de configurare este un fișier text în care pot fi scrise argumente ale liniei de comandă care apoi vor fi folosite ca și cum ar fi fost scrise pe linia de comandă reală. Opțiunile și parametrii acestora trebuie să fie specificați pe aceeași linie de fișier de configurare. Dacă parametrul trebuie să conțină spații albe, parametrul trebuie să fie cuprins între ghilimele. Dacă prima coloană a unei linii de configurare este un caracter „#”, restul liniei va fi tratată ca un comentariu.
Specificați numele fișierului ca „-” pentru ca curl să citească fișierul din stdin. Rețineți că, pentru a putea specifica o adresă URL în fișierul de configurare, trebuie să o specificați folosind--url
1) curl încearcă să găsească „dir home”: mai întâi verifică variabilele de mediu CURL_HOME și apoi HOME. În caz contrar, folosește getpwuid() pe sisteme asemănătoare Unix (care returnează directorul home dat utilizatorului curent din sistemul dumneavoastră). Pe Windows, verifică apoi variabila APPDATA sau, ca ultimă soluție, „%USERPROFILE%Application Data”.
2) Pe Windows, dacă nu există niciun fișier _curlrc în directorul de acasă, verifică dacă există unul în același director în care este plasat curl executabil. Pe sisteme de tip Unix, pur și simplu va încerca să încarce .curlrc din directorul de acasă determinat.
Specificați rata maximă de transfer pe care doriți să o folosească curl. Această caracteristică este utilă dacă aveți o conductă limitată și doriți ca transferul să nu utilizeze întreaga lățime de bandă.
Viteza dată este măsurată în octeți/secundă, cu excepția cazului în care este adăugat un sufix. Adăugarea „k” sau „K” va număra numărul ca kiloocteți, „m” sau M” îl face megaocteți, în timp ce „g” sau „G” îl face gigaocteți. Exemple: 200K, 3m și 1G. Dacă utilizați și-Y/--limita-viteza
opțiunea, acea opțiune va avea prioritate și ar putea paraliza ușor limitarea ratei, pentru a ajuta la menținerea funcționării logicii limitei de viteză.
Dacă această opțiune este folosită de mai multe ori, va fi folosită ultima.
-l/--list-only (FTP) Când listați un director FTP, acest comutator forțează o vizualizare numai cu nume. Mai ales util dacă doriți să analizați automat conținutul unui director FTP, deoarece vizualizarea normală a directorului nu folosește un aspect sau un format standard.
Dacă această opțiune este folosită de două ori, a doua va dezactiva din nou următoarea locație. Dacă nu este folosită nicio literă „=" în linie, aceasta este tratată ca un nume de fișier de utilizat pentru a citi liniile cookie stocate anterior, care ar trebui să fie folosite în această sesiune dacă se potrivesc. Utilizarea acestei metode activează, de asemenea, „parserul de cookie-uri”, care va face și curl înregistrarea cookie-urilor primite, ceea ce poate fi util dacă îl utilizați în combinație cu--location-trusted (HTTP/HTTPS) Ca
, dar va permite trimiterea numelui + parolei către toate gazdele către care site-ul poate redirecționa. Acest lucru poate introduce sau nu o încălcare a securității dacă site-ul vă redirecționează către un site către care veți trimite informațiile de autentificare (care este text simplu în cazul autentificării de bază HTTP).
--max-filesize
-m/--max-time Timp maxim în secunde pe care îl permiteți să dureze întreaga operațiune. Acest lucru este util pentru a preveni blocarea sarcinilor dvs. în lot ore în șir din cauza rețelelor lente sau a legăturilor care se întrerup. Vezi și--connect-timeout (4) Dacă această opțiune este folosită de mai multe ori, va fi folosită ultima. (1) -M/--manual Manual. Afișați uriașul text de ajutor.
-n/--netrc Face ca curl să scaneze Timp maxim în secunde pe care îl permiteți să dureze întreaga operațiune. Acest lucru este util pentru a preveni blocarea sarcinilor dvs. în lot ore în șir din cauza rețelelor lente sau a legăturilor care se întrerup. Vezi și.netrc
Fișier în directorul de start al utilizatorului pentru numele de conectare și parola Acest lucru este utilizat de obicei pentru ftp în Unix
sau pentru detalii despre formatul fișierului. Curl nu se va plânge dacă acel fișier nu are permisiunile potrivite (nu ar trebui să fie citibil în lume sau în grup Variabila de mediu „HOME” este folosită pentru a găsi directorul de acasă). Un exemplu rapid și foarte simplu despre cum să configurați a pentru a permite curl la ftp la mașina host.domain.com cu numele de utilizator „eu” și parola „secret” ar trebui să arate similar cu: mașină host.domain.com login myself parola secretă pentru detalii despre formatul fișierului. Curl nu se va plânge dacă acel fișier nu are permisiunile potrivite (nu ar trebui să fie citibil în lume sau în grup Variabila de mediu „HOME” este folosită pentru a găsi directorul de acasă). face.
--negotiate (HTTP) Activează autentificarea GSS-Negotiate. Metoda GSS-Negotiate a fost concepută de Microsoft și este utilizată în aplicațiile lor web. Este conceput în primul rând ca suport pentru autentificarea Kerberos5, dar poate fi folosit și împreună cu alte metode de autentificare. Pentru mai multe informații, consultați proiectul IETF draft-brezak-spnego-http-04.txt. Dacă această opțiune este folosită de mai multe ori, va fi folosită ultima. Această opțiune necesită ca biblioteca să fie construită cu suport GSSAPI. Acest lucru nu este foarte comun. Utilizare
pentru a vedea dacă versiunea dvs. acceptă GSS-Negotiate.
Când utilizați această opțiune, trebuie să furnizați și o opțiune falsă -u/--user pentru a activa corect codul de autentificare. Trimiterea unui „-u:” este suficientă deoarece numele de utilizator și parola din opțiunea -u nu sunt de fapt folosite.
Dacă această opțiune este folosită de mai multe ori, următoarele apariții nu fac nicio diferență.
-N/--no-buffer Dezactivează tamponarea fluxului de ieșire. În situații normale de lucru, curl va folosi un flux de ieșire tamponat standard care va avea efectul că va scoate datele în bucăți, nu neapărat exact când sosesc datele. Folosirea acestei opțiuni va dezactiva acea tamponare. Dacă această opțiune este folosită de două ori, a doua va activa din nou tamponarea..
--ntlm (HTTP) Activează autentificarea NTLM. Metoda de autentificare NTLM a fost concepută de Microsoft și este utilizată de serverele web IIS. Este un protocol proprietar, proiectat invers de oameni inteligenți și implementat în curl pe baza eforturilor lor. Acest tip de comportament nu ar trebui să fie aprobat, ar trebui să încurajați pe toți cei care folosesc NTLM să treacă la o metodă de autentificare publică și documentată. Cum ar fi Digest. Dacă această opțiune este folosită de mai multe ori, va fi folosită ultima. Dacă doriți să activați NTLM pentru autentificarea proxy, atunci utilizați
--proxy-ntlm
-o/--ieșire
Vezi și Scrie ieșire înîn loc de stdout. Dacă utilizați () sau pentru a prelua mai multe documente, puteți utiliza „#” urmat de un număr în
specificatorul. Variabila respectivă va fi înlocuită cu șirul curent pentru adresa URL preluată. Ca în:
Puteți utiliza această opțiune de câte ori aveți numărul de adrese URL.
(SSL) Expresie de acces pentru cheia privată
Dacă această opțiune este folosită de mai multe ori, va fi folosită ultima. Dacă această opțiune este setată de mai multe ori, ultima va fi cea care este folosită. --anyauth (HTTP) Îi spune lui curl să descopere singur metoda de autentificare și să folosească cea mai sigură pe care site-ul la distanță susține că o acceptă. Acest lucru se realizează mai întâi prin efectuarea unei cereri și verificarea antetelor de răspuns, inducând astfel o călătorie dus-întors în rețea. Aceasta este utilizată în loc de a seta o metodă de autentificare specifică, pe care o puteți face.--proxy-anyauth Spune lui curl să aleagă o metodă de autentificare potrivită atunci când comunică cu proxy-ul dat. Acest lucru va provoca o cerere/răspuns suplimentar dus-întors. (Adăugat în 7.13.2)
Dacă această opțiune este folosită de două ori, a doua va dezactiva din nou utilizarea proxy-orice autentificare. --de bază--proxy-basic Spune lui curl să folosească autentificarea de bază HTTP atunci când comunică cu proxy-ul dat. Utilizare
pentru activarea HTTP Basic cu o gazdă la distanță. Basic este metoda de autentificare implicită pe care curl o folosește cu proxy. --digera Dacă această opțiune este folosită de două ori, a doua va dezactiva din nou autentificarea de bază HTTP proxy.
--proxy-digest Spune lui curl să folosească autentificarea HTTP Digest atunci când comunică cu proxy-ul dat. Utilizare pentru activarea HTTP Digest cu o gazdă la distanță. Dacă această opțiune este utilizată de două ori, a doua va dezactiva din nou proxy HTTP Digest.
--proxy-ntlm Spune lui curl să folosească autentificarea HTTP NTLM atunci când comunică cu proxy-ul dat. Utilizare
pentru activarea NTLM cu o gazdă la distanță. Dacă această opțiune este folosită de două ori, a doua va dezactiva din nou proxy HTTP NTLM.-p/--proxytunnel Când este utilizat un proxy HTTP ( -x/--proxy), această opțiune va face ca protocoalele non-HTTP să încerce să treacă prin tunel prin proxy în loc să-l folosească pur și simplu pentru a efectua operațiuni asemănătoare HTTP. Abordarea tunel este realizată cu cererea de CONECTARE a proxy-ului HTTP și necesită ca proxy-ul să permită conectarea directă la numărul portului de la distanță pe care curl dorește să facă tunelul. Dacă această opțiune este folosită de două ori, a doua va dezactiva din nou tunelul proxy.. EPRT este cu adevărat PORT++. -q Dacă este folosit ca prim parametru pe linia de comandă, curlrc fișierul de configurare nu va fi citit și utilizat. Vezi-K/--config
-Q/--citat
specifică doar primul și ultimul octet(*)(H)
specifică 300 de octeți de la offset 500(H)
specifică două intervale separate de 100 de octeți(*)(H)
(*) = NOTĂ că acest lucru va determina serverul să răspundă cu un răspuns în mai multe părți!
De asemenea, ar trebui să știți că multe servere HTTP/1.1 nu au această funcție activată, astfel încât atunci când încercați să obțineți un interval, veți primi în schimb întregul document.
Când curl este pe cale să reîncerce un transfer, va aștepta mai întâi o secundă și apoi pentru toate reîncercările viitoare va dubla timpul de așteptare până când ajunge la 10 minute, care va fi apoi întârzierea dintre restul reîncercărilor. Prin folosirea --retry-delay dezactivați acest algoritm de backoff exponențial. Vezi de asemenea --retry-max-time pentru a limita timpul total permis pentru reîncercări. (Adăugat în 7.12.3)
Dacă această opțiune este folosită de mai multe ori, ultima apariție decide suma.
este de asemenea folosit. Setarea acestei întârzieri la zero va face ca curl să folosească timpul implicit de retragere. (Adăugat în 7.12.3)
) atâta timp cât temporizatorul nu a atins această limită dată. Observați că, dacă cronometrul nu a atins limita, cererea va fi făcută și, în timpul executării, poate dura mai mult decât această perioadă de timp dată. Pentru a limita timpul maxim al unei singure solicitări, utilizați
. Setați această opțiune la zero pentru a nu reîncerca timeout. (Adăugat în 7.12.3)
Dacă această opțiune este folosită de mai multe ori, ultima apariție decide suma.
pentru activarea HTTP Digest cu o gazdă la distanță.
Dacă această opțiune este utilizată de două ori, a doua va dezactiva din nou modul silențios.
Dacă această opțiune este utilizată de două ori, a doua va dezactiva din nou afișarea erorii. pentru activarea HTTP Digest cu o gazdă la distanță.--șosete4
Utilizați proxy-ul SOCKS4 specificat. Dacă numărul portului nu este specificat, acesta se presupune la portul 1080. (Adăugat în 7.15.2)
Dacă această opțiune este folosită de mai multe ori, va fi folosită ultima. (3) --tcp-nodelay Activați opțiunea TCP_NODELAY. Vezi
pagina de manual pentru detalii despre această opțiune. (Adăugat în 7.11.2)
-t/--opțiune-telnet
TTYPE=
XDISPLOC= Setează locația de afișare X.
Setează o variabilă de mediu.
-T/--upload-file
Aceasta transferă fișierul local specificat la adresa URL la distanță. Dacă nu există nicio parte de fișier în adresa URL specificată, Curl va adăuga numele fișierului local. NOTĂ că trebuie să utilizați un / final pe ultimul director pentru a-i dovedi cu adevărat lui Curl că nu există un nume de fișier sau curl va crede că ultimul nume de director este numele fișierului de la distanță de utilizat. Acest lucru va duce cel mai probabil să eșueze operația de încărcare. Dacă aceasta este utilizată pe un server http(e), va fi folosită comanda PUT.
Utilizați numele de fișier „-” (o singură liniuță) pentru a utiliza stdin în loc de un fișier dat. Puteți specifica câte un -T pentru fiecare URL de pe linia de comandă. Fiecare pereche -T + URL specifică ce să încarce și unde. curl acceptă, de asemenea, „globing” al argumentului -T, ceea ce înseamnă că puteți încărca mai multe fișiere la o singură adresă URL utilizând același stil de globbing URL acceptat în URL, astfel: fișierul de configurare nu va fi citit și utilizat. Vezi FIȘIERE~/.curlrc
Fișier de configurare implicit, vezi[:port] Setează serverul proxy pentru a fi utilizat pentru HTTPS.
Există o mulțime de coduri de eroare diferite și mesajele de eroare corespunzătoare care pot apărea în condiții nefavorabile. La momentul scrierii acestui articol, codurile de ieșire sunt: 1 Protocol neacceptat. Această construcție de curl nu are suport pentru acest protocol. 2 Inițializarea eșuată. este folosit. Cele existente sunt menite să nu se schimbe niciodată.3 URL malformat. Sintaxa nu era corectă.
4 URL-uri utilizator malformatate. Partea utilizator a sintaxei URL nu a fost corectă.
5 Nu s-a putut rezolva proxy-ul. Gazda proxy dată nu a putut fi rezolvată. 6 Nu s-a putut rezolva gazda. Gazda la distanță dată nu a fost rezolvată.
- 7 Nu s-a putut conecta la gazdă.
- Dacă doriți să faceți curl propriul folder, C:\Program Files\curl\ sau C:\curl\ va face.
- Dacă aveți o mulțime de executabile gratuite și nu doriți să adăugați multe foldere separate la PATH, utilizați un singur folder în acest scop, cum ar fi C:\Program Files\tools\ sau C:\tools\ .
- Faceți clic pe meniul Start din Windows 10. Începeți să tastați „mediu”.
- Veți vedea rezultatul căutării. Editați variabilele de mediu ale sistemului. Alege asta.
- Se deschide fereastra System Properties. Faceți clic pe butonul Variabile de mediu jos.
- Selectați variabila „Cale” în secțiunea „Variabile de sistem” (câmpul de jos). Faceți clic pe butonul Schimba.
- Faceți clic pe " Adăuga"și inserați calea către folderul în care se află curl.exe.
- Clic BINE, dacă este necesar. Închideți ferestrele consolei deschise și redeschideți-le astfel încât să primească noua PATH.
8 FTP răspuns ciudat de server. Serverul a trimis curl-ul de date nu a putut analiza 9. Accesul FTP a fost refuzat .
10 Utilizator FTP/parolă incorectă. Oriunul sau ambele nu au fost acceptate de server.
Găsiți curl.exe în pachetul descărcat; este probabil sub bin\ .
Selectați o locație de pe hard disk care va servi drept casă permanentă pentru bucle:
Pune curl.exe în folder. Și nu mutați niciodată folderul sau conținutul acestuia.
Apoi, veți dori să faceți curl disponibil oriunde pe linia de comandă. Pentru a face acest lucru, adăugați folderul la PATH, astfel:
Acum bucurați-vă de tastarea curl pe orice linie de comandă. E timpul să te distrezi!
Pentru a rula curl din linia de comandă
a) Faceți clic dreapta pe pictograma My Computer
b) Selectați „Proprietăți”
d) Accesați fila [Avansat] - butonul „Variabile de mediu”.
e) Sub „System Variable” selectați „Path” și „Edit”
f) Adăugați un punct și virgulă și apoi calea unde ați plasat curl.exe (de exemplu, D:\software\curl)
Acum puteți rula din linia de comandă tastând:
Curl www.google.com
Începând cu Windows 10 versiunea 1803 (și anterioară, versiunea Insider 17063), nu mai instalați curl . Windows conține propriul său curl.exe (și tar.exe) în C:\Windows\System32\ pe care îl puteți accesa direct din CMD obișnuit.
C:\Utilizatori\vonc>C:\Windows\System32\curl.exe --version curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL Data lansării: Protocoale: fișier dict ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp Caracteristici: AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL C:\Users\vonc>C:\Windows\System32\tar.exe --version bsdtar 3.3.2 - libarchive 3.3.2 zlib/1.2.5.f- ipp
Probabil că merită remarcat faptul că Powershell v3 și mai târziu conține cmdletul Invoke-WebRequest, care are unele capacități de curling. Probabil că merită menționat și cmdleturile New-WebServiceProxy și Invoke-RestMethod.
Nu sunt sigur dacă ți se vor potrivi sau nu, dar chiar dacă nu sunt Windows, trebuie să spun că mi se pare mult mai ușor abordarea obiectului pe care PS o folosește pentru a lucra cu utilități precum curl, wget etc. S-ar putea să merite o privire
Puteți crea cea mai recentă versiune de curl, openssl, libssh2 și zlib în 3 pași simpli, urmând acest tutorial.
Curl este construit static, astfel încât nu trebuie să propagați timpul de rulare dinamic necesar.
De asemenea, puteți descărca versiunea predefinită (x86 și x64) de la
Am căutat procesul de descărcare Răsuciși oriunde au spus copiați fișierul curl.exe pe System32, dar nu au furnizat un link direct. ca sa te poti bucura aici curl.exe usor de folderul bin Doar
dezarhivați-l și apoi accesați folderul bin de unde veți obține fișierul exe
M-am gândit să scriu exact ce am făcut (Windows 10, versiunea pe 64 de biți):
Selectați executabilul curl.
Selectați Win64.
Alege universal.
Alege pe oricare.
versiune curl: 7.53.1 - SSL activat SSH activat. Credit: Victor Shakats. Acest pachet este un tip executabil de curl. Acest link vă va oferi un binar curl pre-compilat (sau, în unele cazuri, folosind informațiile furnizate pe pagina către care vă duce linkul). Puteți sau nu să instalați libcurl ca bibliotecă/DLL partajată. Fișierul este împachetat folosind 7zip. 7zip este un format de arhivare a fișierelor.
Faceți clic pe descărcare.
Ar trebui să aveți fișierul curl-7.53.1-win64-mingw.7z în folderul de descărcări.
Instalați 7-Zip dacă nu îl aveți.
Faceți clic dreapta, 7-Zip, Extrageți aici. Copiați și inserați fișierul extras undeva, cum ar fi Z:\Tools\
Dacă te uiți în folderul bin, vei vedea curl.exe. Dacă faceți dublu clic pe el, fereastra va clipi rapid și va dispărea. Pentru a-l rula, trebuie să utilizați linia de comandă. Accesați dosarul dvs. de coș și introduceți curl urmat de opțiunile dvs. pentru a face cererea. Trebuie să utilizați ghilimele duble. Ghilimele simple nu vor funcționa cu curl pe Windows.
Acum trebuie să adăugați curl la variabila Calea utilizatorului, astfel încât să nu fie nevoie să navigați la folderul corect pentru a rula programul. Accesați acest computer, computer, proprietăți sistem, setări avansate de sistem, conectați-vă ca administrator (nu sunteți administrator, nu-i așa?). Variabile de mediu, Variabile de sistem, uitați-vă la listă și selectați Cale, apoi Editați, apoi Nou, apoi de ex.
Z:\Tools\curl-7.53.1-win64-MinGW\Bin
Puteți adăuga o bară oblică inversă dacă doriți, nu cred că contează. Apăsați butonul de mutare în sus până când se află în partea de sus a listei și îl puteți vedea cu ușurință din ecranul anterior. Faceți clic pe OK, OK, OK, apoi deschideți promptul de comandă și puteți rula curl tastând curl din orice folder ca orice utilizator. Nu uitați ghilimelele duble.
Acesta este răspunsul pe care aș dori să-l primesc.
Acest program de instalare mi-a făcut ușor http://www.confusedbycode.com/curl/
Vă prezentăm atenției un nou curs din partea echipei The Codeby- „Testarea de penetrare a aplicațiilor web de la zero”. Teorie generală, pregătirea mediului de lucru, fuzzing pasiv și amprentare, fuzzing activ, Vulnerabilități, Post-exploatare, Instrumente, Inginerie socială și multe altele.
Pentru ce este cURL?
- cURL este excelent pentru simularea acțiunilor utilizatorului într-un browser.
Exemplu practic real: trebuie să reporniți routerul (modem-ul) pentru a schimba adresa IP. Pentru a face acest lucru, trebuie să: să vă conectați la router, să accesați pagina de întreținere și să faceți clic pe butonul „Repornire”. Dacă această acțiune trebuie efectuată de mai multe ori, atunci procedura trebuie repetată. De acord, nu doriți să faceți această rutină manual de fiecare dată. cURL vă permite să automatizați toate acestea. Cu doar câteva comenzi cURL puteți obține autorizarea și finaliza sarcina pe router.
- cURL este util pentru preluarea datelor de pe site-uri web pe linia de comandă.
Un alt exemplu practic: dorim să implementăm afișarea statisticilor generale pentru mai multe site-uri. Dacă folosim cURL, atunci aceasta devine o sarcină complet banală: folosind cURL ne autentificăm pe serviciul de colectare a statisticilor (dacă este necesar), apoi (din nou folosind comenzi cURL) obținem paginile necesare, analizăm datele de care avem nevoie; procedura se repetă pentru toate site-urile noastre, apoi adăugăm și afișăm rezultatul final.
Aceste. cazurile de utilizare a cURL sunt destul de reale, deși, în majoritatea lor, cURL este nevoie de programatorii care îl folosesc pentru programele lor.
cURL acceptă multe protocoale și metode de autorizare, poate transfera fișiere, funcționează corect cu cookie-uri, acceptă certificate SSL, proxy și multe altele.
cURL în PHP și linie de comandă
Putem folosi cURL în două moduri principale: în scripturi PHP și pe linia de comandă.
Pentru a activa cURL în PHP pe server, trebuie să decomentați linia din fișierul php.ini
Extensie=php_curl.dll
Și apoi reporniți serverul.
Pe Linux trebuie să instalați pachetul curl.
Pe Debian, Ubuntu sau Linux Mint:
$ sudo apt-get install curl
Pe Fedora, CentOS sau RHEL:
$ sudo yum install curl
Pentru a vedea clar diferența de utilizare în PHP și pe linia de comandă, vom efectua aceleași sarcini de două ori: mai întâi într-un script PHP și apoi pe linia de comandă. Să încercăm să nu ne confuzăm.
Preluarea datelor folosind cURL
Preluarea datelor folosind cURL în PHP
Exemplu in PHP:
Este foarte simplu:
$target_url— adresa site-ului care ne interesează. După adresa site-ului, puteți pune două puncte și adăugați adresa portului (dacă portul este diferit de cel standard).
curl_init— inițializează o nouă sesiune și returnează un descriptor, care în exemplul nostru este atribuit unei variabile $ch.
Apoi executăm cererea cu funcția cURL curl_exec, căruia i se trece un descriptor ca parametru.
Totul este foarte logic, dar atunci când acest script este executat, conținutul site-ului va fi afișat pe pagina noastră. Dar ce se întâmplă dacă nu vrem să afișăm conținutul, ci vrem să-l scriem într-o variabilă (pentru procesarea sau analizarea ulterioară).
Să adăugăm puțin la scriptul nostru:
0) ( echo "Eroare curl: " . eroare_curl($ch); ) curl_close($ch); ?>
Avem o linie curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);.
curl_setopt— setează opțiuni. O listă completă de opțiuni poate fi găsită pe această pagină: http://php.net/manual/en/function.curl-setopt.php
$response_data = curl_exec($ch);
Acum valoarea scriptului este atribuită variabilei $response_data, cu care pot fi efectuate operațiuni suplimentare. De exemplu, puteți afișa conținutul acestuia.
Dacă (curl_errno($ch) > 0) ( echo "Eroare curl: " . curl_error($ch); )
servesc pentru depanare în cazul în care apar erori.
Preluarea datelor folosind cURL pe linia de comandă
Pe linia de comandă, trebuie doar să tastați
Curl mi-al.ru
unde în loc de mi-al.ru- adresa site-ului dvs. web.
Dacă trebuie să copiați datele într-o variabilă, în loc să afișați rezultatul pe ecran, atunci procedați astfel:
Temp=`curl mi-al.ru`
Cu toate acestea, unele date sunt încă afișate:
Pentru a preveni afișarea lor, adăugați cheia -s:
Temp=`curl -s mi-al.ru`
Puteți vedea ce a fost înregistrat:
Echo $temp | Mai puțin
Autentificare de bază și HTTP
Autentificarea, pur și simplu, înseamnă introducerea unui nume de utilizator și a unei parole.
Autentificarea de bază este autentificarea bazată pe server. Pentru aceasta, sunt create două fișiere: .htaccessŞi .htpasswd
Conținutul fișierului .htaccess este cam așa
AuthName „Numai pentru utilizatorii înregistrați!” AuthType Basic necesită un utilizator valid AuthUserFile /home/freeforum.biz/htdocs/.htpassw
Conținutul fișierului .htpasswd este cam așa:
Mial:CRdiI.ZrZQRRc
Aceste. login și parola hash.
Când încercați să accesați un folder protejat cu parolă, browserul va afișa ceva de genul:
Autentificarea HTTP este cazul când introducem o autentificare și o parolă într-un formular de pe site. Această autentificare este folosită atunci când vă conectați la e-mail, forumuri etc.
Autentificare cURL de bază (PHP)
Există un site http://62.113.208.29/Update_FED_DAYS/ care ne cere să ne logăm:
Să încercăm scriptul nostru inițial:
0) ( echo "Eroare curl: " . eroare_curl($ch); ) else ( echo $date_răspuns; ) curl_close($ch); ?>
Deși scriptul consideră că nu există nicio eroare, nu ne place deloc rezultatul:
Adăugați două rânduri:
Curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_USERPWD, "ru-board:ru-board");
Pe prima linie setăm tipul de autentificare - de bază. A doua linie conține numele și parola separate prin două puncte (în cazul nostru, numele și parola sunt aceleași - ru-board). A ieșit așa:
0) ( echo "Eroare curl: " . eroare_curl($ch); ) else ( echo $date_răspuns; ) curl_close($ch); ?>
Autentificare cURL de bază (pe linia de comandă)
Același lucru poate fi realizat pe linia de comandă cu o singură linie:
Curl -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/
Nu am uitat să precizez tipul de autentificare, doar că în cURL tipul de autentificare de bază este implicit.
Totul a mers atât de repede pe linia de comandă încât, din frustrare, am scris următorul program. Se conectează la site și descarcă cea mai recentă actualizare:
Temp=`curl -s -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/ | grep -E -o „Actualizare_FED_201(1).(2).(2).7z” | unic | coada -n 1`; curl -o $temp -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/$temp
Cu doar câteva comenzi mai puteți adăuga:
- despachetarea arhivei în directorul specificat;
- lansarea actualizărilor ConsultantPlus (acestea sunt actualizări pentru acesta);
- puteți verifica dacă cea mai recentă actualizare disponibilă a fost deja descărcată sau a apărut una nouă;
- adăugați totul la Cron pentru actualizări zilnice.
CURL de autentificare HTTP
Autentificare HTTP cURL în PHP
Trebuie să știm:
- adresa unde se trimit datele de autentificare
- metoda de trimitere GET sau POST
- log in
- parolă
Uneori aceste date nu sunt suficiente. Să ne dăm seama.
Adresa la care trebuie să trimiteți datele poate fi preluată din formularul de autentificare. De exemplu: