¿Cómo usar cURL a través de un proxy?

Este tutorial mostrará la forma de usar un proxy con las funciones cURL de PHP. En este tutorial, enviaremos nuestra solicitud HTTP a través de una dirección IP y un puerto proxy seleccionados.

¿Por qué debería usar un proxy?
Hay varias razones por las que posiblemente desee utilizar un proxy con cURL:

  1. Para sortear filtros regionales y bloques de países.
  2. El uso de direcciones IP de proxy le permite enmascarar u ocultar su propia dirección IP.
  3. Para depurar problemas de conexión de red.

Uso de un proxy con las funciones cURL de PHP: para autenticarse con un proxy a través de cURL y enviar una solicitud HTTP GET, siga el código que se proporciona a continuación y lea las instrucciones especificadas como comentarios.

Nota: Todas las credenciales y los enlaces utilizados son aleatorios y se utilizan solo con fines de demostración. Utilice su propio proxy, credenciales y URL.

<?php
  
// Initialize URL you that want to
// send a cURL proxy request to.
$desturl = 'http://example.net';
  
// The IP address of the proxy that
// you want to send your request
// through
$proxyipadd = '11.22.33.44';
  
// The port that the proxy is
// listening on
$proxyport = '1234';
  
// The username for authenticating
// with the proxy
$proxyuserid = 'testuser';
  
// The password for authenticating
// with the proxy
$proxypass = 'testpass';
  
// Initialize curl 
$ci = curl_init($url);
  
// Set curl attributes
curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ci, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ci, CURLOPT_HTTPPROXYTUNNEL , 1);
  
// Set the proxy IP
curl_setopt($ci, CURLOPT_PROXY, $proxyipadd);
  
// Set the port
curl_setopt($ci, CURLOPT_PROXYPORT, $proxyport);
  
// Set the username and password
curl_setopt($ci, CURLOPT_PROXYUSERPWD, 
            "$proxyuserid:$proxypass");
  
// Execute the request
$result = curl_exec($ci);
  
// Check if any errors
if(curl_errno($ci)){
    throw new Exception(curl_error($ci));
}
  
// Print the result.
echo $result;
?>

En el código anterior, nos conectamos a un proxy que necesita autenticación antes de enviar una solicitud GET fácil. Si el proxy no requiere autenticación, puede omitir la línea CURLOPT_PROXYUSERPWD de su código.

Algunos errores que puede encontrar al usar curl:

  • “Error al conectarse al puerto 1234 11.22.33.44: se agotó el tiempo de espera” Esto significa que cURL no pudo conectarse con la dirección IP del proxy y el puerto utilizados. Asegúrese de que tanto la IP como el puerto sean correctos y también verifique si el proxy funciona correctamente.
  • “Error al adjuntar al puerto 1234 11.22.33.44: Conexión rechazada” Este error generalmente ocurre una vez que especificó un número de puerto incorrecto, es decir, la dirección IP del proxy era correcta, pero no escucha las requests en el puerto especificado. También existe la posibilidad de que el servidor esté activo, pero el software que ejecuta el proxy no se está ejecutando.
  • «Recibí el código HTTP 407 del proxy después de CONECTAR» El combo de nombre de usuario y contraseña que está usando con CURLOPT_PROXYUSERPWD es incorrecto. Asegúrese de que el nombre de usuario y la contraseña sean correctos y que esté separando el nombre de usuario y la contraseña con dos puntos: carácter.

Publicación traducida automáticamente

Artículo escrito por kevadiyasmeet y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *