Koji proxy je koristio ovaj PHP cURL zahtjev?
Razlikujte konfigurisani proxy, povezanog partnera i javni izlaz koji vidi odredište.
“Dohvati proxy” u PHP cURL aplikaciji može značiti tri različite stvari. Odlučite koje vam je promatranje potrebno prije nego dodate još jedan zahtjev.
| Pitanje | Gdje tražiti |
|---|---|
| Koji je krajnji cilj aplikacija konfigurisala? | Konfiguracija predana ručki |
| Je li proxy korišten za ovaj prijenos? | Informacije o prijenosu, gdje su podržane |
| Koju je javnu adresu vidjela web stranica? | Promatranje na tom odredištu |
Držite odabrani krajnji cilj uz ručku ili objekt zahtjeva. curl_getinfo je sučelje za informacije o prijenosu, a ne opći getter za svaku prethodno dodijeljenu vrijednost CURLOPT. Zadržavanje konfiguracije aplikacije jednostavnije je od pokušaja presretanja poziva curl_setopt.
Pregledajte završeni prijenos
Nakon prijenosa, povezani partner dostupan je kroz CURLINFO_PRIMARY_IP. Kada prva veza ide prema proxyju, taj partner može biti adresa proxyja, a ne adresa web stranice.
$peer = curl_getinfo($ch, CURLINFO_PRIMARY_IP);
$usedProxy = defined('CURLINFO_USED_PROXY')
? curl_getinfo($ch, constant('CURLINFO_USED_PROXY'))
: null;
CURLINFO_USED_PROXY dodan je u libcurl u 8.7.0 i dostupan je u kompatibilnim PHP buildovima. Njegov rezultat prijavljuje korištenje proxyja, a ne puni URL odabranog proxyja. Ako konstanta nije dostupna, null iznad znači da promatranje nije dostupno, a ne da je zahtjev išao izravno.
Čitajte ove vrijednosti dok ručka još opisuje dotičnu radnju. Neuspješna veza možda neće dati korisnu adresu partnera, a eksplicitni proxy i dalje može biti zaobiđen primjenjivim izuzetkom.
Krajnja točka za provjeru IP-a odgovara na treće pitanje. Njezin odgovor može opisati izlaz iza proxyja, dok se konfigurisano ime hosta razrješava na drugi ulaz. Nijedna adresa ne smije se zamijeniti drugom u postavkama aplikacije.