„Obține proxy-ul” poate însemna trei lucruri diferite într-o aplicație PHP cURL. Decideți de ce observație aveți nevoie înainte de a adăuga o altă cerere.

ÎntrebareUnde să priviți
Ce punct final a configurat aplicația?Configurația transmisă handle-ului
A fost folosit un proxy pentru acest transfer?Informații despre transfer, unde sunt acceptate
Ce adresă publică a văzut site-ul?O observație la acea destinație

Păstrați punctul final ales lângă handle sau obiectul cererii. curl_getinfo este o interfață de informații despre transfer, nu un getter general pentru fiecare valoare CURLOPT atribuită anterior. Păstrarea configurației aplicației este mai simplă decât încercarea de a intercepta apelurile curl_setopt.

Inspectați transferul finalizat

După transfer, partenerul conectat este disponibil prin CURLINFO_PRIMARY_IP. Când prima conexiune merge către un proxy, acel partener poate fi adresa proxy-ului, nu adresa site-ului.

$peer = curl_getinfo($ch, CURLINFO_PRIMARY_IP);
$usedProxy = defined('CURLINFO_USED_PROXY')
    ? curl_getinfo($ch, constant('CURLINFO_USED_PROXY'))
    : null;

CURLINFO_USED_PROXY a fost adăugat în libcurl în 8.7.0 și este expus de versiunile PHP compatibile. Rezultatul raportează utilizarea proxy-ului, nu URL-ul complet al proxy-ului ales. Dacă constanta nu este disponibilă, null de mai sus înseamnă că observația nu este disponibilă, nu că cererea a mers direct.

Citiți aceste valori cât timp handle-ul descrie încă operațiunea respectivă. O conexiune eșuată poate să nu ofere o adresă utilă a partenerului, iar un proxy explicit poate fi totuși ocolit de o excludere aplicabilă.

Un punct final de verificare IP răspunde la a treia întrebare. Răspunsul său poate descrie o ieșire din spatele proxy-ului, în timp ce numele de gazdă configurat se rezolvă către o altă intrare. Niciuna dintre cele două adrese nu trebuie înlocuită cu cealaltă în setările aplicației.

Articole similare