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

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

Povezani članci