”Hämta proxyn” kan betyda tre olika saker i en PHP cURL-applikation. Bestäm vilken observation du behöver innan du lägger till ännu en förfrågan.

FrågaVar du ska titta
Vilken slutpunkt konfigurerade applikationen?Konfigurationen som gavs till handtaget
Användes en proxy för den här överföringen?Överföringsinformation, där det stöds
Vilken offentlig adress såg webbplatsen?En observation på den destinationen

Behåll den valda slutpunkten bredvid handtaget eller förfrågningsobjektet. curl_getinfo är ett gränssnitt för överföringsinformation, inte en allmän getter för varje tidigare tilldelat CURLOPT-värde. Att behålla applikationens konfiguration är enklare än att försöka fånga curl_setopt-anrop.

Granska den slutförda överföringen

Efter överföringen är den anslutna peeren tillgänglig via CURLINFO_PRIMARY_IP. När den första anslutningen går till en proxy kan den peeren vara proxyns adress i stället för webbplatsens adress.

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

CURLINFO_USED_PROXY lades till i libcurl i 8.7.0 och exponeras av kompatibla PHP-byggen. Resultatet rapporterar proxyanvändning, inte den valda proxyns fullständiga URL. Om konstanten inte är tillgänglig betyder null ovan att observationen inte är tillgänglig, inte att förfrågan gick direkt.

Läs dessa värden medan handtaget fortfarande beskriver den aktuella operationen. En misslyckad anslutning ger kanske ingen användbar peer-adress, och en uttrycklig proxy kan fortfarande kringgås av ett tillämpligt undantag.

En IP-kontrollslutpunkt svarar på den tredje frågan. Svaret kan beskriva en utgång bakom proxyn, medan det konfigurerade värdnamnet löses till en annan ingång. Ingen av adresserna bör ersättas med den andra i applikationens inställningar.

Relaterade artiklar