Koji je proxy koristio ovaj PHP cURL zahtjev?
Razlikujte konfigurirani 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 |
|---|---|
| Koju je krajnju točku aplikacija konfigurirala? | Konfiguracija predana ručki |
| Je li proxy korišten za ovaj prijenos? | Informacije o prijenosu, gdje su podržane |
| Koju je javnu adresu vidjelo web-mjesto? | Promatranje na tom odredištu |
Držite odabranu krajnju točku 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 dovrš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-mjesta.
$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 izlažu ga kompatibilne PHP verzije. Njegov rezultat izvješćuje o korištenju proxyja, a ne o punom URL-u 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 izričiti 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 konfigurirano ime hosta razrješava na drugi ulaz. Nijedna adresa ne smije se zamijeniti drugom u postavkama aplikacije.