„De proxy ophalen” kan in een PHP cURL-toepassing drie verschillende dingen betekenen. Bepaal welke observatie u nodig hebt voordat u nog een verzoek toevoegt.

VraagWaar te kijken
Welk eindpunt heeft de toepassing geconfigureerd?De configuratie die aan de handle is gegeven
Is er voor deze overdracht een proxy gebruikt?Overdrachtsinformatie, waar ondersteund
Welk openbaar adres zag de website?Een observatie op die bestemming

Houd het gekozen eindpunt naast de handle of het verzoekobject. curl_getinfo is een interface voor overdrachtsinformatie, geen algemene getter voor elke eerder toegewezen CURLOPT-waarde. De configuratie van de toepassing bewaren is eenvoudiger dan proberen curl_setopt-aanroepen te onderscheppen.

Inspecteer de voltooide overdracht

Na de overdracht is de verbonden peer beschikbaar via CURLINFO_PRIMARY_IP. Gaat de eerste verbinding naar een proxy, dan kan die peer het adres van de proxy zijn in plaats van dat van de website.

$peer = curl_getinfo($ch, CURLINFO_PRIMARY_IP);
$usedProxy = defined('CURLINFO_USED_PROXY')
    ? curl_getinfo($ch, constant('CURLINFO_USED_PROXY'))
    : null;

CURLINFO_USED_PROXY is in 8.7.0 aan libcurl toegevoegd en wordt door compatibele PHP-builds aangeboden. Het resultaat meldt proxygebruik, niet de volledige URL van de gekozen proxy. Is de constante niet beschikbaar, dan betekent null hierboven dat de observatie niet beschikbaar is, niet dat het verzoek rechtstreeks ging.

Lees deze waarden terwijl de handle de betreffende bewerking nog beschrijft. Een mislukte verbinding levert mogelijk geen bruikbaar peer-adres op, en een expliciete proxy kan nog steeds worden omzeild door een toepasselijke uitsluiting.

Een IP-controle-eindpunt beantwoordt de derde vraag. Het antwoord kan een uitgang achter de proxy beschrijven, terwijl de geconfigureerde hostnaam naar een andere ingang verwijst. Geen van beide adressen mag in de instellingen van de toepassing door het andere worden vervangen.

Gerelateerde artikelen