Curl_setopt – Nastavuje možnosť pre reláciu CURL. PHP CURL - funkcie a príklady použitia Curl z príkazového riadku

Curl_setopt – Nastavuje možnosť pre reláciu CURL.  PHP CURL - funkcie a príklady použitia Curl z príkazového riadku
Curl_setopt – Nastavuje možnosť pre reláciu CURL. PHP CURL - funkcie a príklady použitia Curl z príkazového riadku

CURL je nástroj príkazového riadka na prijímanie alebo odosielanie údajov pomocou syntaxe URL.

Ak pracujete v helpdesk, mali by ste byť schopní používať príkazy cURL na odstraňovanie problémov s webovými aplikáciami. cURL je multiplatformový nástroj pre Windows, MAC a UNIX.
Nižšie sú uvedené niektoré bežne používané príklady syntaxe.

1. Skontrolujte, či je možné pripojiť adresu URL

Ak používate systém UNIX a pokúšate sa pripojiť k externej adrese URL, najskôr skontrolujte, či máte prístup k prostriedku cez curl . Ak to chcete urobiť, použite nasledujúci príkaz:

# curl yoururl.com

2. Uloženie URL/URI výstupu do súboru

# curl yoururl.com > yoururl.html

Napríklad:

# curl 74.125.68.100 >/tmp/google.html

Vyššie uvedený príklad uloží všetok obsah z hostiteľa 74.125.68.100 do súboru /tmp/google.html.

3. Zobrazte hlavičku požiadavky a odpovede

Ak sa chcete uistiť, že dostanete očakávanú hlavičku požiadavky a odpovede, použite nasledujúci príkaz:

# curl -v yoururl.com

Napríklad:

# curl -v 74.125.68.100 * O pripojení () k portu 74.125.68.100 80 (#0) * Skúšam 74.125.68.100... * Pripojené k portu 74.125.68.100 (74.125.68.10) > 74.125.68.10 / HTTP/1.1 > User-Agent: curl/7.29.0 >Hostiteľ: 74.125.68.100 >Prijať: */* >< HTTP/1.1 200 OK

4. Sťahujte maximálnou rýchlosťou

Ak chcete vedieť, ako dlho trvá sťahovanie pri určitej rýchlosti, použite nasledujúci príkaz:

# curl --limit-rate 2000B

Napríklad:

# curl --limit-rate 2000B 74.125.68.100

5. Použitie proxy na pripojenie

Ak potrebujete skontrolovať, či je možné použiť proxy server, použite nasledujúcu syntax:

# curl --proxyyourproxy:port http://yoururl.com

6. Kontrola adresy URL zadaním názvu

Ak chcete vyriešiť konkrétny problém, môžete použiť Curl na vloženie údajov do hlavičky. Zvážte nasledujúci príklad žiadosti s typom obsahu:

# curl --header "Typ obsahu: application/json" http://yoururl.com

Žiadame curl, aby odovzdal Content-Type ako application/json v hlavičke požiadavky.

7. Pridajte ďalšiu hlavičku

K požiadavke môžete pridať hlavičku pomocou syntaxe -header.

# curl --header “X-CustomHeader: GeekFlare” http://yoururl.com

Napríklad:

# curl -v --header "X-CustomHeader: GeekFlare" 74.125.68 * O pripojení() k portu 74.125.68.100 80 (#0) * Pokus o 74.125.68.100... * Pripojené k 74.125.648.10 68.100) port 80 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.29.0 >Hostiteľ: 74.125.68.100 >Prijať: */* > X-CustomHeader: GeekFlare >< HTTP/1.1 200 OK

8. Otvorte iba hlavičku odpovede

Ak chcete rýchlo skontrolovať hlavičku odpovede, môžete na to použiť nasledujúcu syntax.

# curl --head http://yoururl.com

# curl -I 74.125.68.100 HTTP/1.1 200 OK Dátum: Nedeľa, 18. január 2015 08:31:22 GMT Expires: -1 Cache-Control: private, max-age=0 Content-Type: text/html; charset=ISO-8859-1 Set-Cookie: NID=67=SpnXKTDUhw7QGakIeLxmDSF; expires=Po, 20-Jul-2015 08:31:22 GMT; cesta=/; doména=.; HttpOnly P3P: CP="Toto nie je zásada P3P! Viac informácií nájdete na stránke http://www.google.com/support/accounts/bin/answer.py?hl=sk&answer=151657." Server: gws X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN Alternate-Protocol: 80:quic,p=0.02 Transfer-Encoding: chunked Accept-Ranges: none Vary: Accept-Encoding #

9. Pripojte adresu HTTPS/SSLURL a ignorujte všetky chyby certifikátu SSL

Ak potrebujete získať prístup k https URL, ktorá vyvoláva chybu certifikátu z dôvodu nesúladu názvu hostiteľa, môžete použiť nasledujúcu syntax.

curl --insecure https://yoururl.com

10. Pripojte sa pomocou špecifického protokolu (SSL/TLS)

Ak sa chcete pripojiť k adrese URL pomocou iba SSL V2/V3 alebo TLS, použite nasledujúcu syntax.

Pre pripojenie pomocou SSLV2:

# curl --sslv2 https://yoururl.com

Pre pripojenie pomocou SSLV3:

# curl --sslv3 https://yoururl.com

Pre pripojenie cez TLS:

# curl --tlsv1 https://yoururl.com

11. Nahrajte súbor z FTP servera

Pomocou cURL si môžete stiahnuť súbor z ftp servera zadaním používateľského mena a hesla.

# curl -u user:password -O ftp://ftpurl/style.css

Vždy môžete použiť "-v" s ľubovoľnou syntaxou na výstup v podrobnom režime.

Používanie cURL online

Áno, je to možné. CURL môžete spustiť na diaľku pomocou nasledujúcich nástrojov.
Online CURL je kompaktný nástroj na extrakciu online adresy URL a pridanie nasledujúcich parametrov.

Connect-timeout --cookie --data --header --head --location --max-time --proxy --request --user --url --user-agent

Príklad výstupu:

Tvorca príkazového riadka cURL – Umožňuje vám vytvoriť príkaz cURL, ktorý môžete použiť na zadávanie informácií do používateľského rozhrania.

Často musíme sťahovať rôzne súbory z internetu, napríklad spustiteľné programové súbory, súbory skriptov, zdrojové archívy. Nie vždy to však treba robiť cez prehliadač. V mnohých situáciách je oveľa jednoduchšie vykonávať všetky akcie prostredníctvom terminálu. Pretože týmto spôsobom môžete automatizovať proces. Na druhej strane musia webmasteri z času na čas otestovať dostupnosť webových stránok, skontrolovať odoslané a prijaté hlavičky a mnoho ďalšieho.

Na vyriešenie takýchto problémov a problémov podobného rozsahu môžete použiť pomôcku curl. Umožňuje vám riešiť oveľa širšiu škálu problémov, vrátane simulácie akcií používateľov na stránke. V tomto článku sa pozrieme na to, ako používať curl, čo to je a prečo je tento program potrebný.

Curl je v skutočnosti viac než len pomôcka príkazového riadka pre Linux alebo Windows. Ide o súbor knižníc, ktoré implementujú základné možnosti práce s URL stránkami a prenosu súborov. Knižnica podporuje prácu s protokolmi: FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, LDAP, ako aj POP3, IMAP a SMTP. Je to skvelé na simuláciu akcií používateľov na stránkach a iných operácií s adresami URL.

Podpora knižnice curl bola pridaná do mnohých rôznych programovacích jazykov a platforiem. Pomôcka curl je nezávislý obal pre túto knižnicu. Práve na túto pomôcku sa zameriame v tomto článku.

príkaz curl

Predtým, ako prejdeme k popisu toho, ako možno použiť príkaz curl linux, pozrime sa na samotný nástroj a jeho hlavné možnosti, ktoré budeme potrebovať. Syntax nástroja je veľmi jednoduchá:

$ odkaz možnosti curl

Teraz sa pozrime na hlavné možnosti:

  • -# - zobraziť jednoduchý indikátor priebehu počas načítania;
  • -0 - použite protokol http 1.0;
  • -1 - používať šifrovací protokol tlsv1;
  • -2 - použite sslv2;
  • -3 - použite sslv3;
  • -4 - používať ipv4;
  • -6 - používať ipv6;
  • -A- uveďte svojho USER_AGENT;
  • -b- uložiť súbor cookie do súboru;
  • -c- odoslať súbor cookie na server zo súboru;
  • -C- pokračovať v sťahovaní súboru od bodu zlomu alebo zadaného posunu;
  • -m- maximálny čas čakania na odpoveď zo servera;
  • -d- odosielanie údajov metódou POST;
  • -D- uložiť hlavičky vrátené serverom do súboru;
  • -e- nastavte pole Referer-uri označujúce, z ktorej stránky používateľ prišiel;
  • -E- použiť externý SSL certifikát;
  • -f- nezobrazovať chybové hlásenia;
  • -F- zasielať údaje vo forme formulára;
  • -G- ak je táto možnosť povolená, potom všetky údaje špecifikované vo voľbe -d budú prenášané pomocou metódy GET;
  • -H- prenos hlavičiek na server;
  • -Ja- prijímať iba hlavičku HTTP a ignorovať celý obsah stránky;
  • -j- čítať a odosielať súbory cookie zo súboru;
  • -J- odstrániť hlavičku z požiadavky;
  • -L- prijímať a spracovávať presmerovania;
  • -s- maximálny počet presmerovaní pomocou polohy;
  • -o- výstup obsahu stránky do súboru;
  • -O- uložiť obsah do súboru s názvom stránky alebo súboru na serveri;
  • -p- použiť proxy;
  • --proto- uveďte protokol, ktorý sa má použiť;
  • -R- uložiť čas poslednej úpravy vzdialeného súboru;
  • -s- zobrazovať minimum informácií o chybách;
  • -S- zobrazenie chybových hlásení;
  • -T- nahrať súbor na server;
  • -v- najpodrobnejší výstup;
  • -y- minimálna rýchlosť sťahovania;
  • -Y- maximálna rýchlosť sťahovania;
  • -z- stiahnuť súbor iba vtedy, ak bol zmenený neskôr ako v určenom čase;
  • -V- zobraziť verziu.

V žiadnom prípade to nie sú všetky možnosti pre curl linux, ale sú tu uvedené základy, ktoré budete musieť použiť.

Ako používať curl?

Prebrali sme všetko, čo súvisí s teóriou práce s utilitou curl, teraz je čas prejsť na prax a pozrieť sa na príklady príkazu curl.

Najčastejšou úlohou je toto. Stiahnutie súboru je veľmi jednoduché. Ak to chcete urobiť, jednoducho odovzdajte názov súboru alebo html stránku obslužnému programu v parametroch:

curl https://raw.githubusercontent.com/curl/curl/master/README.md

Tu vás však čaká jedno prekvapenie: celý obsah súboru sa odošle na štandardný výstup. Ak ho chcete zapísať do ľubovoľného súboru, použite:

curl -o readme.txt https://raw.githubusercontent.com/curl/curl/master/README.md

A ak chcete, aby sa výsledný súbor volal rovnako ako súbor na serveri, použite možnosť -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

V prípade potreby môžete jedným príkazom stiahnuť niekoľko súborov:

curl -O https://raw.githubusercontent.com/curl/curl/master/README.md -O https://raw.githubusercontent.com/curl/curl/master/README

Ďalšia vec, ktorá môže byť pre správcu užitočná, je stiahnuť súbor iba vtedy, ak bol upravený:

curl -z 21-Dec-17 https://raw.githubusercontent.com/curl/curl/master/README.md -O https://raw.githubusercontent.com/curl/curl/master/README

Limit rýchlosti

Rýchlosť sťahovania môžete obmedziť na požadovaný limit, aby ste nepreťažili sieť pomocou voľby -Y:

curl --limit-rate 50 000 -O https://cdn.kernel.org/pub/linux/kernel/v4.x/testing/linux-4.11-rc7.tar.xz

Tu musíte zadať počet kilobajtov za sekundu, ktoré je možné stiahnuť. Môžete tiež ukončiť pripojenie, ak rýchlosť nie je dostatočná, použite na to možnosť -Y:

curl -Y 100 -O https://raw.githubusercontent.com/curl/curl/master/README.md

Prenos súborov

curl -T login.txt ftp://speedtest.tele2.net/upload/

Alebo skontrolujte, či je súbor odoslaný cez HTTP, existuje na to špeciálna služba:

curl -T ~/login.txt http://posttestserver.com/post.php

V odpovedi vám obslužný program povie, kde nájdete stiahnutý súbor.

Odosielanie údajov POST

Metódou POST môžete odosielať nielen súbory, ale aj ľubovoľné údaje. Pripomínam, že tento spôsob sa používa na odosielanie údajov rôznych foriem. Na odoslanie takejto požiadavky použite voľbu -d. Na testovanie použijeme rovnakú službu:

curl -d "field1=val&fileld2=val1"http://posttestserver.com/post.php

Ak nie ste spokojní s touto možnosťou odoslania, môžete predstierať odoslanie formulára. Existuje možnosť -F:

curl -F "password=@pass;type=text/plain" http://posttestserver.com/post.php

Tu odovzdáme pole hesla s formulárom ako obyčajný text, rovnakým spôsobom môžete zadať niekoľko parametrov.

Odosielanie a prijímanie cookies

Cookies používajú webové stránky na ukladanie určitých informácií na strane užívateľa. Môže to byť potrebné napríklad pri autentifikácii. Cookies môžete prijímať a odosielať pomocou curl. Ak chcete uložiť prijaté súbory cookie do súboru, použite možnosť -c:

curl -c cookie.txt http://posttestserver.com/post.php

Potom môžete poslať súbor cookie curl späť:

curl -b cookie.txt http://posttestserver.com/post.php

Prenos a analýza hlavičky

Nie vždy nevyhnutne potrebujeme obsah stránky. Niekedy môžu byť zaujímavé len titulky. Ak chcete zobraziť iba ich, existuje možnosť -I:

curl -I https://site

A voľba -H vám umožňuje poslať niekoľko alebo viac na server, napríklad môžete odovzdať hlavičku If-Modified-Since, takže stránka sa vráti iba vtedy, ak bola upravená:

overenie kučery

Ak server vyžaduje jeden z bežných typov autentifikácie, ako napríklad HTTP Basic alebo FTP, curl túto úlohu zvládne veľmi ľahko. Ak chcete zadať podrobnosti autentifikácie, jednoducho ich zadajte oddelené dvojbodkou vo voľbe -u:

curl -u ftpuser:ftppass -T - ftp://ftp.testserver.com/myfile_1.txt

Autentifikácia na HTTP serveroch bude vykonaná rovnakým spôsobom.

Pomocou proxy

Ak potrebujete na sťahovanie súborov použiť proxy server, je to tiež veľmi jednoduché. Stačí zadať adresu proxy servera vo voľbe -x:

curl -x proxysever.test.com:3128 http://google.co.in

závery

V tomto článku sme sa pozreli na to, ako používať curl, prečo je tento nástroj potrebný a jeho hlavné možnosti. Napriek svojej podobnosti sú veľmi odlišné. Príkaz curl linux je určený skôr na analýzu a simuláciu rôznych akcií na serveri, zatiaľ čo wget je vhodnejší na sťahovanie súborov a prehľadávanie stránok.

CURL je softvérový balík pozostávajúci z nástroja príkazového riadka a knižnice na prenos údajov pomocou syntaxe URL.

CURL podporuje mnoho protokolov vrátane DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet a TFTP.

Nahrajte samostatný súbor
Nasledujúci príkaz získa obsah adresy URL a zobrazí ju na štandardnom výstupe (t. j. váš terminál).

Curl https://mi-al.ru/ > mi-al.htm % Celkom % Prijatých % Xferd Priemerná rýchlosť Čas Čas Čas Aktuálne predĺženie Odovzdanie Celkom Spotrebované Doľava Rýchlosť 100 14378 0 14378 0 0 5387 0 --: --:- - 0:00:02 --:--:-- 5387

Uloženie výstupu cURL do súboru
Výsledok príkazu curl môžeme uložiť do súboru pomocou volieb -o/-O.
  • -o(o malé písmená) výsledok sa uloží do súboru zadaného na príkazovom riadku
  • -O(veľké O) názov súboru sa prevezme z adresy URL a použije sa na uloženie prijatých údajov.

$ curl -o mygettext.html http://www.gnu.org/software/gettext/manual/gettext.html

Stránka gettext.html sa teraz uloží do súboru s názvom 'mygettext.html'. Keď curl spustíte s voľbou -o, zobrazí sa indikátor priebehu sťahovania nasledovne.

% Celkom % Prijaté % Xferd Priemerná rýchlosť Čas Čas Čas Aktuálne predĺženie Odovzdanie Celkom Spotrebované Zostávajúca rýchlosť 0 0 39474 0 0:00:31 0:00:31 --:--:-- 68987

Keď použijete curl -O (veľké písmená O), sám uloží obsah do súboru s názvom „gettext.html“ na lokálnom počítači.

$ curl -O http://www.gnu.org/software/gettext/manual/gettext.html

Poznámka: Keď curl potrebuje zapísať údaje do terminálu, deaktivuje indikátor priebehu, aby sa predišlo zámene s vytlačenými údajmi. Na prenos výsledkov do súboru môžeme použiť voľby '>'|'-o'|'-O'.

Obnovenie viacerých súborov naraz
Zadaním všetkých adries URL na príkazovom riadku môžeme stiahnuť viacero súborov naraz.

Curl -O URL1 -O URL2

Nasledujúci príkaz stiahne index.html aj gettext.html a uloží ich s rovnakými názvami do aktuálneho adresára.

Curl -O http://www.gnu.org/software/gettext/manual/html_node/index.html -O http://www.gnu.org/software/gettext/manual/gettext.html

Upozorňujeme, že keď stiahneme viacero súborov z rovnakého servera, ako je uvedené vyššie, curl sa pokúsi znova použiť pripojenie.

Postupujte podľa hlavičiek umiestnenia HTTP s možnosťou -L
V predvolenom nastavení CURL nesleduje umiestnenie HTTP v hlavičkách (presmerovania). Keď sa požadovaná webová stránka presunie na iné miesto, príslušná odpoveď bude odoslaná v hlavičkách HTTP Location.
Napríklad, keď niekto zadá do prehliadača google.com zo svojej krajiny, bude automaticky presmerovaný na google.co.xx. Toto sa vykonáva na základe hlavičky HTTP Location, ako je uvedené nižšie.

Curl https://www.google.com/?gws_rd=ssl

302 Presunuté

302 Presunuté

Dokument sa presunul sem.

Vyššie uvedený výstup hovorí, že požadovaný dokument bol presunutý do „

Skryté pred hosťami

.
Môžete povedať curl, aby sledoval presmerovania, to sa vykonáva pomocou voľby -L, ako je uvedené nižšie. Teraz sa stiahne zdrojový kód html

Skryté pred hosťami

.

Curl -L https://www.google.com/?gws_rd=ssl

Obnovenie predchádzajúceho stiahnutia

Pomocou voľby -C môžete pokračovať v sťahovaní, ktoré bolo z nejakého dôvodu zastavené. Bude to užitočné, keď sťahovanie veľkých súborov zlyhá.
Ak povieme '-C -', potom curl vyhľadá, odkiaľ obnoviť sťahovanie. Môžeme tiež špecifikovať '-C<смещение>'. Zadaný bajtový offset sa preskočí od začiatku zdrojového súboru.
Spustite veľké sťahovanie pomocou curl a stlačte Ctrl-C, aby ste ho zastavili uprostred sťahovania.

$ curl -O http://www.gnu.org/software/gettext/manual/gettext.html ############## 20,1 %

Injekcia bola zastavená na 20,1 %. Pomocou „curl -C -“ môžeme pokračovať v načítavaní od miesta, kde sme prestali. Teraz bude sťahovanie pokračovať z 20,1 %.

Curl -C - -O http://www.gnu.org/software/gettext/manual/gettext.html ############### 21,1 %

Obmedzenie rýchlosti prenosu dát
Rýchlosť prenosu dát môžete obmedziť pomocou možnosti –limit-rate. Ako argument môžete uviesť maximálnu rýchlosť.

$ curl --limit-rate 1000B -O http://www.gnu.org/software/gettext/manual/gettext.html

Vyššie uvedený príkaz obmedzí prenosovú rýchlosť na 1000 bajtov za sekundu. curl môže používať vyššie rýchlosti v špičkách. Priemerná rýchlosť však bude približne 1 000 bajtov za sekundu.
Nižšie je lišta priebehu pre vyššie uvedený príkaz. Môžete vidieť, že aktuálna rýchlosť je okolo 1000 bajtov.

% Celkom % Prijaté % Xferd Priemerná rýchlosť Čas Čas Čas Aktuálne predĺženie Odovzdanie Celková vyčerpaná rýchlosť 1 1215 k 1 13601 0 0 957 0 0:21:40 0:00:14 0:21:26 999 1 1215 k 1 1460 0 0 960 0 0:21:36 0:00:15 0:21:21 999 1 1215k 1 15601 0 0 962 0 0:21:34 0:00:16 0:21:18 999

Načítajte súbor, iba ak bol zmenený pred/po určenom čase
Súbory, ktoré sa po určitom čase zmenili, môžete získať pomocou voľby -z v curl. Toto bude fungovať pre FTP aj HTTP.

Vyššie uvedený príkaz načíta súbor yy.html iba vtedy, ak bol zmenený novšie ako daný dátum a čas.

Vyššie uvedený príkaz načíta súbor.html, ak bol upravený pred daným dátumom a časom. Napíšte 'man curl_getdate' a dozviete sa viac o rôznych podporovaných syntaxách pre výrazy dátumu.

Odovzdanie overenia HTTP v cURL
Niekedy webové stránky vyžadujú na zobrazenie svojho obsahu používateľské meno a heslo. Pomocou voľby -u môžete odovzdať tieto poverenia z cURL na webový server, ako je uvedené nižšie.

$ curl -u užívateľské meno:heslo URL

Poznámka: V predvolenom nastavení curl používa základnú autentifikáciu HTTP. Ďalšie metódy autentifikácie môžeme nastaviť pomocou –ntlm | -tráviť.


cURL možno použiť aj na sťahovanie súborov z FTP serverov. Ak je zadaná cesta FTP adresár, predvolene sa zobrazí zoznam súborov v ňom.

$ curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/xss.php

Vyššie uvedený príkaz stiahne súbor xss.php z ftp servera a uloží ho do lokálneho adresára.

$ curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/

Tu URL odkazuje na adresár. Preto cURL vypíše súbory a adresáre na danej URL.


CURL podporuje rozsahy špecifikované v URL. Po zadaní rozsahu sa načítajú zodpovedajúce súbory v tomto rozsahu. Bude to užitočné pri sťahovaní balíkov z FTP mirrorov.

$ curl ftp://ftp.uk.debian.org/debian/pool/main//

Vyššie uvedený príkaz zobrazí zoznam všetkých balíkov v rozsahu a-z v termináli.

Nahrávanie súborov na FTP server
Curl možno použiť aj na nahrávanie na FTP server s voľbou -T.

$ curl -u ftpuser:ftppass -T myfile.txt ftp://ftp.testserver.com

Vyššie uvedený príkaz odovzdá súbor s názvom myfile.txt na server FTP. Môžete tiež nahrať viacero súborov naraz pomocou rozsahov.

$ curl -u ftpuser:ftppass -T "(súbor1,súbor2)" ftp://ftp.testserver.com

Voliteľne môžeme použiť „.“ prijímať zo štandardného vstupu a odovzdávať ho vzdialenému stroju.

$ curl -u ftpuser:ftppass -T - ftp://ftp.testserver.com/myfile_1.txt

Vyššie uvedený príkaz prijme výstup od užívateľa zo štandardného vstupu a uloží obsah na ftp server ako 'myfile_1.txt'.
Pre každú adresu URL môžete zadať „-T“ a každý pár adresa-súbor určí, čo sa kam nahrať

Viac informácií so zvýšenou výrečnosťou a možnosťou sledovania
Čo sa deje, môžete zistiť pomocou voľby -v. Voľba -v umožňuje verbálny režim a vytlačí podrobnosti.

Curl -v https://www.google.co.th/?gws_rd=ssl

Vyššie uvedený príkaz vypíše nasledovné

* Prestavaná adresa URL na: https://www.google.co.th/?gws_rd=ssl * Názov hostiteľa sa NENAšiel vo vyrovnávacej pamäti DNS * Pokus 27.123.17.49... * Pripojené k www.google.co.th (27.123. 17.49) port 80 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.38.0 > Hostiteľ: www.google.co.th > Accept: */* >< HTTP/1.1 200 OK < Date: Fri, 14 Aug 2015 23:07:20 GMT < Expires: -1 < Cache-Control: private, max-age=0 < Content-Type: text/html; charset=windows-874 < P3P: CP="This is not a P3P policy! See https://support.google.com/accounts/answer/151657?hl=en for more info." * Server gws is not blacklisted < Server: gws < X-XSS-Protection: 1; mode=block < X-Frame-Options: SAMEORIGIN < Set-Cookie: PREF=ID=1111111111111111:FF=0:TM=1439593640:LM=1439593640:V=1:S=FfuoPPpKbyzTdJ6T; expires=Sun, 13-Aug-2017 23:07:20 GMT; path=/; domain=.google.co.th ... ... ...

Ak potrebujete podrobnejšie informácie, môžete použiť možnosť –trace. Voľba –trace umožní úplný výpis sledovania všetkých prichádzajúcich/odchádzajúcich údajov pre daný súbor

Navrhujem hovoriť trochu o programovacom jazyku PHP a konkrétne sa dotknúť témy rozšírení CURL, t.j. schopnosť komunikovať s rôznymi servermi pomocou rôznych protokolov zo samotného skriptu PHP.

Predtým, než sa začneme zaoberať curlingom, rád by som vám to pripomenul jazyk PHP Už sme sa toho dotkli napríklad v materiáli o nahrávaní do Excelu v PHP alebo možnosti autentifikácie v PHP a teraz si povieme niečo o možnosti posielať požiadavky do PHP.

Čo je CURL?

CURL- toto je knižnica PHP funkcie, pomocou ktorého môžete odosielať požiadavky, napríklad HTTP, z PHP skriptu. CURL podporuje protokoly ako HTTP, HTTPS, FTP a iné. Odoslať HTTP požiadavky Môžete použiť metódy GET, POST, PUT.

CURL môže byť užitočné v prípadoch, keď potrebujete zavolať vzdialený skript a získať výsledok alebo jednoducho uložiť HTML kód volanej stránky, vo všeobecnosti si každý nájde svoje využitie, ale ide o to, že môžete posielať požiadavky, kým skript je spustený.

Pripojenie knižnice CURL v PHP

Aby ste mohli používať knižnicu CURL, musíte ju zodpovedajúcim spôsobom pripojiť.

Poznámka! Ako príklad použijeme PHP 5.4.39 na Windows 7 a ako webový server použijeme Apache 2.2.22.

Prvá vec, ktorú musíte urobiť, je skopírovať knižnice ssleay32.dll, libeay32.dll, libssh2.dll sú umiestnené v adresári s PHP, v systéme Windows adresár, a to v C:\Windows\System32.

Potom pripojte knižnicu php_curl.dll k php.ini, t.j. odkomentujte nasledujúci riadok

Knižnica nie je pripojená

;extension=php_curl.dll

Knižnica pripojená

Prípona=php_curl.dll

To je všetko, reštartujte Apache, zavolajte funkciu phpinfo() a ak je pripojenie úspešné, mali by ste mať sekciu curl


Ak tam nie je, znamená to len jednu vec: knižnica sa nenačítala, najčastejším dôvodom je, že vyššie uvedené knižnice DLL neboli skopírované do systémového adresára Windows.

Príklad CURL – vyžiadanie si vzdialenej stránky na zobrazenie na obrazovke

IN v tomto príklade len sa opýtame odstránená stránka cez protokol HTTP metódou GET a zobraziť jej obsah na obrazovke.

Máme v ňom test adresára 2 súbor PHP sú to test_curl.php a test.php, kde test_curl.php je skript, v ktorom budeme používať curl, a test.php je vzdialený skript, ktorý zavoláme. Kód som podrobne okomentoval.

Kód test_curl.php

Kód test.php

Nadpis 1"; prestávka; prípad 2: echo"<Н2>Nadpis 2"; prestávka; prípad 3: echo"<Н3>Nadpis 3"; prestávka; ) ) ?>

Výsledkom je, že ak spustíte test_curl.php, na obrazovke uvidíte správu „Nadpis 1“, môžete experimentovať s odovzdávaním parametrov id ( v tomto prípade 2 alebo 3).

Príklad CURL - volanie vzdialeného skriptu a získanie výsledku

Teraz skúsme zavolať skript a získať výsledok, aby sme ho mohli neskôr spracovať, napríklad použite metódu POST. Názvy súborov nechajme rovnaké.

Kód test_curl.php

Kód test.php

A ak spustíme test_curl.php, tak sa na obrazovke zobrazí 111, t.j. 1.11 získaný ako výsledok prístupu k vzdialenému skriptu, vynásobený 100.

Teraz si povieme niečo o funkciách a ich konštantách.

Bežne používané funkcie a konštanty CURL

  • curl_init - Inicializuje reláciu;
  • curl_close - Zatvorí reláciu;
  • curl_exec - Vykoná požiadavku;
  • curl_errno - Vráti kód chyby;
  • curl_setopt – Nastavuje parameter pre reláciu, napríklad:
    • CURLOPT_HEADER – hodnota 1 znamená, že hlavičky by sa mali vrátiť;
    • CURLOPT_INFILESIZE - parameter na určenie očakávanej veľkosti súboru;
    • CURLOPT_VERBOSE - hodnota 1 znamená, že CURL zobrazí podrobné správy o všetkých vykonaných operáciách;
    • CURLOPT_NOPROGRESS – vypne indikátor priebehu operácie, hodnota 1;
    • CURLOPT_NOBODY – ak nepotrebujete dokument, ale potrebujete len hlavičky, tak nastavte hodnotu na 1;
    • CURLOPT_UPLOAD - pre nahranie súboru na server;
    • CURLOPT_POST – vykoná požiadavku metódou POST;
    • CURLOPT_FTPLISTONLY - získanie zoznamu súborov v adresári FTP servery, hodnota 1;
    • CURLOPT_PUT — vykoná požiadavku pomocou metódy PUT, hodnota 1;
    • CURLOPT_RETURNTRANSFER - vráti výsledok bez jeho odoslania do prehliadača, hodnota 1;
    • CURLOPT_TIMEOUT – maximálny čas vykonania v sekundách;
    • CURLOPT_URL – určenie adresy kontaktu;
    • CURLOPT_USERPWD - reťazec s užívateľským menom a heslom v tvare :;
    • CURLOPT_POSTFIELDS – údaje pre požiadavku POST;
    • CURLOPT_REFERER - nastavuje hodnotu HTTP hlavičky “Referer:”;
    • CURLOPT_USERAGENT - nastavuje hodnotu HTTP hlavičky “User-Agent:”;
    • CURLOPT_COOKIE — obsah hlavičky „Cookie:“, ktorá bude odoslaná s požiadavkou HTTP;
    • CURLOPT_SSLCERT - názov súboru s certifikátom vo formáte PEM;
    • CURLOPT_SSL_VERIFYPEER – hodnota 0 na zakázanie overovania certifikátu vzdialený server(predvolené 1);
    • CURLOPT_SSLCERTPASSWD — heslo pre súbor certifikátu.
  • curl_getinfo - Vracia informácie o operácii, druhý parameter môže byť konštanta označujúca, čo presne treba zobraziť, napríklad:
    • CURLINFO_EFFECTIVE_URL – posledná použitá adresa URL;
    • CURLINFO_HTTP_CODE - posledný prijatý HTTP kód;
    • CURLINFO_FILETIME — dátum úpravy načítaného dokumentu;
    • CURLINFO_TOTAL_TIME — čas vykonania operácie v sekundách;
    • CURLINFO_NAMELOOKUP_TIME — čas rozlíšenia názvu servera v sekundách;
    • CURLINFO_CONNECT_TIME — čas strávený nadviazaním spojenia v sekundách;
    • CURLINFO_PRETRANSFER_TIME — čas, ktorý uplynul od začiatku operácie do pripravenosti na skutočný prenos dát, v sekundách;
    • CURLINFO_STARTTRANSFER_TIME — čas v sekundách, ktorý uplynul od začiatku operácie do prenosu prvého bajtu údajov;
    • CURLINFO_REDIRECT_TIME — čas strávený presmerovaním v sekundách;
    • CURLINFO_SIZE_UPLOAD - počet bajtov pri nahrávaní;
    • CURLINFO_SIZE_DOWNLOAD - počet bajtov pri sťahovaní;
    • CURLINFO_SPEED_DOWNLOAD - priemerná rýchlosť sťahovania;
    • CURLINFO_SPEED_UPLOAD - priemerná rýchlosť sťahovania;
    • CURLINFO_HEADER_SIZE - celková veľkosť všetkých prijatých hlavičiek;
    • CURLINFO_REQUEST_SIZE - celková veľkosť všetkých odoslaných požiadaviek;
    • CURLINFO_SSL_VERIFYRESULT - výsledok kontroly požadovaného SSL certifikátu nastavením parametra CURLOPT_SSL_VERIFYPEER;
    • CURLINFO_CONTENT_LENGTH_DOWNLOAD - veľkosť sťahovaného dokumentu, načítaná z hlavičky Content-Length;
    • CURLINFO_CONTENT_LENGTH_UPLOAD - veľkosť nahrávaných údajov;
    • CURLINFO_CONTENT_TYPE – obsah prijatej hlavičky Content-type alebo NULL, ak táto hlavička nebola prijatá.

Viac o funkciách CURL a ich konštantách sa dozviete na oficiálnej stránke PHP -

Skutočný praktický príklad: ak chcete zmeniť IP adresu, musíte reštartovať router (modem). Ak to chcete urobiť, musíte: prihlásiť sa do smerovača, prejsť na stránku údržby a kliknúť na tlačidlo „Reštartovať“. Ak je potrebné túto akciu vykonať niekoľkokrát, potom sa musí postup zopakovať. Súhlasíte s tým, že túto rutinu nechcete zakaždým robiť manuálne. cURL vám toto všetko umožňuje automatizovať. Pomocou niekoľkých príkazov cURL môžete dosiahnuť autorizáciu a dokončiť úlohu na smerovači.

Ďalší praktický príklad: chceme implementovať zobrazovanie všeobecných štatistík pre viacero stránok. Ak použijeme cURL, stáva sa to úplne triviálnou úlohou: pomocou cURL sa autentifikujeme v službe zberu štatistík (ak je to potrebné), potom (opäť pomocou príkazov cURL) získame potrebné stránky, analyzujeme údaje, ktoré potrebujeme; postup sa opakuje pre všetky naše stránky, potom pridáme a zobrazíme konečný výsledok.

Tie. prípady použitia cURL sú celkom reálne, hoci vo väčšine prípadov cURL potrebujú programátori, ktorí ho používajú pre svoje programy.

CURL podporuje mnoho protokolov a autorizačných metód, dokáže prenášať súbory, správne pracuje s cookies, podporuje SSL certifikáty, proxy a mnohé ďalšie.

cURL v PHP a príkazovom riadku

CURL môžeme použiť dvoma hlavnými spôsobmi: v PHP skriptoch a na príkazovom riadku.

Ak chcete povoliť cURL v PHP na serveri, musíte odkomentovať riadok v súbore php.ini

Prípona=php_curl.dll

A potom reštartujte server.

V systéme Linux musíte nainštalovať balík curl.

Na Debiane, Ubuntu alebo Linux Mint:

$ sudo apt-get install curl


Na Fedore, CentOS alebo RHEL:

$ sudo yum install curl

Aby sme jasne videli rozdiel v používaní v PHP a na príkazovom riadku, vykonáme rovnaké úlohy dvakrát: najprv v skripte PHP a potom na príkazovom riadku. Skúsme sa nenechať zmiasť.

Načítanie údajov pomocou cURL

Získavanie údajov pomocou cURL v PHP

Príklad v PHP:

Všetko je veľmi jednoduché:
$target_url- adresa stránky, ktorá nás zaujíma. Za adresu lokality môžete vložiť dvojbodku a pridať adresu portu (ak sa port líši od štandardného).

curl_init- inicializuje novú reláciu a vráti handle, ktorý je v našom príklade priradený k premennej $ch.

Potom vykonáme požiadavku pomocou funkcie cURL curl_exec, ktorému sa odovzdá deskriptor ako parameter.

Všetko je veľmi logické, ale po spustení tohto skriptu sa obsah stránky zobrazí na našej stránke. Čo však v prípade, ak nechceme obsah zobraziť, ale chceme ho zapísať do premennej (na následné spracovanie alebo analýzu).

Pridajme trochu k nášmu skriptu:

0) ( echo "Chyba curlingu: " . curl_error($ch); ) curl_close($ch); ?>

Máme líniu curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);.

curl_setopt- nastavuje možnosti. Úplný zoznam možnosti nájdete na tejto stránke:

Skryté pred hosťami

$response_data = curl_exec($ch);

Teraz je hodnota skriptu priradená k premennej $response_data, s ktorou je možné vykonávať ďalšie operácie. Môžete napríklad zobraziť jeho obsah.

Stehy

If (curl_errno($ch) > 0) ( echo "Curl error: " . curl_error($ch); )

slúžia na ladenie v prípade výskytu chýb.

Načítanie údajov pomocou cURL na príkazovom riadku

Na príkazovom riadku stačí zadať

kde namiesto toho mi-al.ru- adresa vašej webovej stránky.

Ak potrebujete skopírovať údaje do premennej namiesto zobrazenia výsledku na obrazovke, postupujte takto:

Temp="curl mi-al.ru"

Niektoré údaje sa však stále zobrazujú:

Ak chcete zabrániť ich zobrazeniu, pridajte kľúč -s:

Temp="curl -s mi-al.ru"

Môžete vidieť, čo bolo zaznamenané:

Echo $temp | menej

Základná a HTTP autentifikácia

Autentifikácia, zjednodušene povedané, je zadanie používateľského mena a hesla.

Základná autentifikácia je autentifikácia na strane servera. Na tento účel sa vytvoria dva súbory: .htaccess A .htpasswd

Obsah súboru .htaccess je približne takýto

AuthName "Len pre registrovaných užívateľov!" AuthType Basic vyžaduje platného používateľa AuthUserFile /home/freeforum.biz/htdocs/.htpassw


Obsah súboru .htpasswd je približne takýto:

Mial:CRdiI.ZrZQRRc

Tie. hash prihlasovacieho mena a hesla.

Keď sa pokúsite o prístup k priečinku chránenému heslom, prehliadač zobrazí niečo takéto:

HTTP autentifikácia je prípad, keď zadáme prihlasovacie meno a heslo do formulára na webovej stránke. Práve toto overenie sa používa pri prihlasovaní do pošty, na fórach atď.

Základné overenie cURL (PHP)

Existuje webová stránka

Skryté pred hosťami

Skúsme náš úvodný skript:

0) ( echo "Curl error: " . curl_error($ch); ) else ( echo $response_data; ) curl_close($ch); ?>

Hoci skript verí, že nejde o žiadnu chybu, výstup sa nám vôbec nepáči:

Pridajte dva riadky:

Curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_USERPWD, "ru-board:ru-board");

V prvom riadku nastavíme typ autentifikácie – základné. Druhý riadok obsahuje meno a heslo oddelené dvojbodkou (v našom prípade je meno a heslo rovnaké - ru-board). Dopadlo to takto:

0) ( echo "Curl error: " . curl_error($ch); ) else ( echo $response_data; ) curl_close($ch); ?> Skúsme: 30946 Skvelé! Základná autentifikácia cURL (na príkazovom riadku) To isté sa dá dosiahnuť na príkazovom riadku jedným riadkom: curl -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/

Nezabudol som špecifikovať typ autentifikácie, ide len o to, že v cURL je základný typ autentifikácie predvolený.

Na príkazovom riadku všetko fungovalo tak rýchlo, že som z frustrácie napísal nasledujúci program. Pripojí sa k stránke a stiahne najnovšiu aktualizáciu:

Temp=`curl -s -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/ | grep -E -o "Aktualizovať_FED_201(1).(2).(2).7z" | uniq | chvost -n 1'; curl -o $temp -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/$temp

Pomocou niekoľkých ďalších príkazov môžete pridať:

  • rozbalenie archívu do určeného adresára;
  • spustenie aktualizácií ConsultantPlus (sú to jeho aktualizácie);
  • môžete skontrolovať, či už bola stiahnutá najnovšia dostupná aktualizácia alebo sa objavila nová;
  • pridajte to všetko do Cron pre denné aktualizácie.
HTTP autentifikácia cURL

Autentifikácia HTTP cURL v PHP

Potrebujeme vedieť:

  • adresu, kam sa majú zaslať autentifikačné údaje
  • spôsob odoslania GET alebo POST
  • Prihlásiť sa
  • heslo
Niekedy tieto údaje nestačia. Poďme na to.

Adresu, na ktorú je potrebné odoslať údaje, môžete získať z overovacieho formulára. Napríklad:

Pozeráme sa na nehnuteľnosť akcie. Tie. posledná strana je login.php. Potrebujeme celá adresa, napríklad takto

Skryté pred hosťami

Tu nájdeme aj spôsob odoslania: method="post"

Poznám aj prihlasovacie meno a heslo: admin a qwerasdfzxcv
Tie. Reťazec sa odošle na server z formulára pomocou metódy POST. Teoreticky by mal fungovať náš predchádzajúci skript, do ktorého sme pridali nový riadok. Tie. musí nastať autentifikácia.

0) ( echo "Curl error: " . curl_error($ch); ) else ( ) curl_close($ch); ?>

Nový riadok v skripte

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

Tu curl_setopt- funkcia, ktorá je nám už známa na nastavenie možností pre cURL, CURLOPT_POSTFIELDS- toto je názov možnosti, ktorú nastavujeme. CURLOPT_POSTFIELDS obsahuje všetky údaje, ktoré sa prenášajú pomocou metódy POST. No, samotná línia LOGIN_USER=admin&LOGIN_PASSWD=qwerasdfzxcv- ide o tie isté údaje, ktoré prenášame.

Ak si formulár pozorne prezriete, uvidíte, že obsahuje aj skryté polia. A dáta sa dajú spracovať alebo doplniť JavaScriptom Toto všetko si môžete naštudovať, ale ja mám radšej jednoduchší spôsob.

Používam Wireshark. Tento program je určený na snímanie (zachytávanie) premávky. A práve v ňom je veľmi pohodlné vidieť, čo presne sa na stránku prenáša.

Pozrite si toto malé video:


Tie. s adresou kam sa prenasaju udaje som tipoval spravne. Ukázalo sa však, že prenášaný reťazec je oveľa komplikovanejší.

Zadal som správny parameter a tiež som mierne upravil skript tak, aby sa nielen prihlásil, ale aj niečo dostal zo smerovača:

0) ( echo "Curl error: " . 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 = str_replace("";", "", $results2); echo "Názov siete Wi-Fi: $results2
"; preg_match("|f_wpa.wpapsk1.value(.*)";|", $response_data2, $results3); $results3 = str_replace("f_wpa.wpapsk1.value", "", $results3); $results3 = str_replace("="", "", $results3); $results3 = str_replace("";", "", $results3); echo "Heslo siete Wi-Fi: $results3"; ) curl_close($ch); ?>

Mimochodom, ak vlastník aktualizuje heslo (ale neaktualizuje firmvér), nové heslo je možné vždy zobraziť na

Skryté pred hosťami

(Ide o dobre známu zraniteľnosť smerovačov D-Link DIR-300, D-Link DIR-320 a D-Link DAP-1353).

Autentifikácia HTTP cURL na príkazovom riadku

Už poznáme celú adresu, ako aj reťazec, ktorý sa má preniesť. Takže je to jednoduché:

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

Myslím si, že je všetko jasné, keďže sme tieto termíny už zvážili. Ak niekto nerozumie, pýtajte sa v komentároch.

Príkladom použitia cURL na získanie a analýzu údajov by bola nasledujúca sada príkazov:

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.php -&de "v/nnnulle > /de " && echo "Názov siete 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 "Heslo siete 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/="//"

Správnejšie by bolo napísať tento nadpis takto: „Komplexné“ prípady autorizácie. Tie. Dajte slovo „komplikované“ do úvodzoviek. Zložité sa zdajú len na prvý pohľad, keď nie je jasné: kde sa odosiela, aké sú názvy polí, čo presne sa odosiela atď.

Ale v skutočnosti sa všetky týkajú metód POST alebo GET. Aby ste pochopili, čo presne sa odosiela, môžete si stránku s formulárom uložiť na disk a pridať funkciu na zobrazenie údajov vygenerovaných na odoslanie na tlačidlo Odoslať. Alebo ešte jednoduchšie - ako ja, Wireshark.

Ak sú údaje správne, ale nedôjde k overeniu totožnosti, musíte postupovať podľa nasledujúcich pokynov:

  • nastavte správny reťazec sprostredkovateľa
  • nastavte "správny" reťazec používateľského agenta.
To všetko sa dá urobiť pomocou základných metód cURL, ale nebudem sa tým zaoberať. Lekcia už bola dostatočne dlhá, ale chcel som ukázať aj pár trikov s cURL.

Tipy a triky cURL

cURL a prijímanie súborov cookie okrem CURLOPT_COOKIEJAR

Myslím, že už je jasné, že cURL narába s cookies správne – ukladá ich, používa ich, keď si ich server vyžiada, atď. Niekedy je však potrebné cookies uložiť. Existuje na to možnosť s názvom CURLOPT_COOKIEJAR, ale nie vždy je možné ju použiť. Tomu je venovaný náš prvý trik.

Niekedy kvôli spôsobu, akým je PHP nakonfigurované na serveri, nemáme dostupné možnosti ako CURLOPT_COOKIEJAR (umožňuje vám uložiť prijaté súbory cookie do súboru) a CURLOPT_COOKIEFILE (umožňuje vám používať súbory cookie zo súboru). Pretože hovoria, že pomocou týchto možností môžeme ukradnúť akýkoľvek súbor z ich servera. Tu je riešenie tohto problému:

1) Nepoužívame CURLOPT_FOLLOWLOCATION
2) Použite curl_setopt($ch, CURLOPT_HEADER, 1)
3) Zbierajte cookies z hlavičky takto:

Preg_match_all("|Nastaviť súbor cookie: (.*);|U", $obsah, $výsledky); $cookies = implode(";", $vysledky);

4) Nastavte ich pomocou curl_setopt($ch, CURLOPT_COOKIE, $cookies);

Druhý tip. Z útočníkov sa môžeme zmeniť na obete. Robíme to, aby sme sa nestali obeťou útoku typu man-in-the-middle.

Prosím, všetci, prestaňte nastavovať nastavenie CURLOPT_SSL_VERIFYPEER na hodnotu false alebo 0. Ak vaša inštalácia PHP nemá aktuálnu sadu certifikátov koreňovej CA, stiahnite si jeden z webovej stránky curl a uložte ho na svoj server:

Skryté pred hosťami

Potom nastavte cestu v súbore php.ini, napríklad v systéme Windows:

Curl.cainfo=c:phpcacert.pem

Zakázanie CURLOPT_SSL_VERIFYPEER umožňuje útok typu man-in-the-middle (MITM), ktorý nechceme!

No a dnes posledný tip. Vedeli ste, že je možný veľký počet žiadostí o asynchrónne zvlnenie?

Na to môžete použiť curl_multi_init. Podrobnosti a príklad kódu v oficiálnej dokumentácii

Skryté pred hosťami

Skryté pred hosťami


O cURL na príkazovom riadku

Skryté pred hosťami


Druhá časť lekcie cURL bola tiež pripravená na čítanie v ruštine: "".