Hvilken proxy brukte denne PHP cURL-forespørselen?
Skill mellom den konfigurerte proxyen, den tilkoblede peeren og den offentlige utgangen som en destinasjon ser.
«Hent proxyen» kan bety tre forskjellige ting i en PHP cURL-applikasjon. Bestem hvilken observasjon du trenger før du legger til en ny forespørsel.
| Spørsmål | Hvor du skal se |
|---|---|
| Hvilket endepunkt konfigurerte applikasjonen? | Konfigurasjonen som ble gitt til håndtaket |
| Ble det brukt en proxy for denne overføringen? | Overføringsinformasjon, der det støttes |
| Hvilken offentlig adresse så nettstedet? | En observasjon på den destinasjonen |
Hold det valgte endepunktet ved siden av håndtaket eller forespørselsobjektet. curl_getinfo er et grensesnitt for overføringsinformasjon, ikke en generell getter for hver tidligere tildelte CURLOPT-verdi. Å beholde applikasjonskonfigurasjonen er enklere enn å prøve å avskjære curl_setopt-kall.
Undersøk den fullførte overføringen
Etter overføringen er den tilkoblede peeren tilgjengelig via CURLINFO_PRIMARY_IP. Når den første forbindelsen går til en proxy, kan den peeren være proxyens adresse i stedet for nettstedets adresse.
$peer = curl_getinfo($ch, CURLINFO_PRIMARY_IP);
$usedProxy = defined('CURLINFO_USED_PROXY')
? curl_getinfo($ch, constant('CURLINFO_USED_PROXY'))
: null;
CURLINFO_USED_PROXY ble lagt til i libcurl i 8.7.0 og eksponeres av kompatible PHP-bygg. Resultatet rapporterer proxybruk, ikke den valgte proxyens fullstendige URL. Hvis konstanten ikke er tilgjengelig, betyr null ovenfor at observasjonen ikke er tilgjengelig, ikke at forespørselen gikk direkte.
Les disse verdiene mens håndtaket fortsatt beskriver den aktuelle operasjonen. En mislykket tilkobling gir kanskje ikke en nyttig peer-adresse, og en eksplisitt proxy kan fortsatt omgås av et gjeldende unntak.
Et IP-sjekk-endepunkt svarer på det tredje spørsmålet. Svaret kan beskrive en utgang bak proxyen, mens det konfigurerte vertsnavnet løses til en annen inngang. Ingen av adressene bør erstattes med den andre i applikasjonens innstillinger.