Que proxy usou esta solicitude PHP cURL?
Distinga o proxy configurado, o par conectado e a saída pública que observa un destino.
«Obter o proxy» pode significar tres cousas distintas nunha aplicación PHP cURL. Decida que observación necesita antes de engadir outra solicitude.
| Pregunta | Onde 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.