«Obter o proxy» pode significar tres cousas distintas nunha aplicación PHP cURL. Decida que observación necesita antes de engadir outra solicitude.

PreguntaOnde mirar
Que punto final configurou a aplicación?A configuración entregada ao manexador
Utilizouse un proxy para esta transferencia?Información da transferencia, cando é compatible
Que enderezo público viu o sitio web?Unha observación nese destino

Manteña o punto final seleccionado xunto ao manexador ou ao obxecto de solicitude. curl_getinfo é unha interface de información da transferencia, non un getter xeral para cada valor CURLOPT asignado antes. Conservar a configuración da aplicación é máis simple que tentar interceptar as chamadas a curl_setopt.

Inspeccione a transferencia completada

Tras a transferencia, o par conectado está dispoñible mediante CURLINFO_PRIMARY_IP. Cando a primeira conexión vai a un proxy, ese par pode ser o enderezo do proxy en lugar do enderezo do sitio web.

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

CURLINFO_USED_PROXY engadiuse a libcurl na versión 8.7.0 e expóñeno as compilacións de PHP compatibles. O seu resultado informa do uso de proxy, non do URL completo do proxy seleccionado. Se a constante non está dispoñible, o null anterior significa que a observación non está dispoñible, non que a solicitude fose directamente.

Lea estes valores mentres o manexador aínda describe a operación en cuestión. Unha conexión fallida pode non dar un enderezo de par útil, e un proxy explícito aínda pode evitarse cunha exclusión aplicable.

Un punto final de comprobación de IP responde a terceira pregunta. A súa resposta pode describir unha saída detrás do proxy, mentres que o nome de host configurado resolve a unha entrada distinta. Ningún dos dous enderezos debe substituírse polo outro nos axustes da aplicación.

Artigos relacionados