Koji je proxy 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 |
|---|---|
| Koju je krajnju točku 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 vidio web sajt? | 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 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 sajta.
$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štava 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. Njen 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.