“Obtén el proxy” pot significar tres coses diferents en una aplicació PHP cURL. Decidiu quina observació necessiteu abans d'afegir una altra petició.

PreguntaOn mirar
Quin punt final ha configurat l'aplicació?La configuració lliurada al manegador
S'ha utilitzat un proxy per a aquesta transferència?Informació de la transferència, quan és compatible
Quina adreça pública ha vist el lloc web?Una observació en aquesta destinació

Mantingueu el punt final seleccionat al costat del manegador o de l'objecte de petició. curl_getinfo és una interfície d'informació de la transferència, no un getter general per a cada valor CURLOPT assignat prèviament. Conservar la configuració de l'aplicació és més senzill que intentar interceptar les crides a curl_setopt.

Inspeccioneu la transferència completada

Després de la transferència, el parell connectat està disponible mitjançant CURLINFO_PRIMARY_IP. Quan la primera connexió va a un proxy, aquest parell pot ser l'adreça del proxy i no l'adreça del lloc web.

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

CURLINFO_USED_PROXY es va afegir a libcurl a la versió 8.7.0 i l'exposen les compilacions de PHP compatibles. El seu resultat informa de l'ús de proxy, no de l'URL completa del proxy seleccionat. Si la constant no està disponible, el null anterior significa que l'observació no està disponible, no que la petició hagi anat directament.

Llegiu aquests valors mentre el manegador encara descriu l'operació en qüestió. Una connexió fallida pot no donar una adreça de parell útil, i un proxy explícit encara es pot evitar amb una exclusió aplicable.

Un punt final de comprovació d'IP respon la tercera pregunta. La seva resposta pot descriure una sortida darrere del proxy, mentre que el nom d'amfitrió configurat es resol a una entrada diferent. Cap de les dues adreces no s'ha de substituir per l'altra a la configuració de l'aplicació.

Articles relacionats