Proxy PHP

Los proxies en PHP se crean a través de la biblioteca cURL. cURL significa URL del cliente y es una de las extensiones más poderosas de PHP.

Denial Stenberg creó la biblioteca cURL para comunicarse entre diferentes servidores.

cURL tiene funciones que pueden enviar solicitudes a través de diferentes IP y puertos. cUrl nos permite enviar y recibir datos a través de URL.

Este tutorial muestra cómo habilitar cURL en PHP y crear un proxy usando cURL.

[Habilitar biblioteca cURL en PHP]

Antes de comenzar a crear el proxy, debemos habilitar la biblioteca cURL. La biblioteca cURL ya existe en PHP, tenemos que habilitarla.

Primero, debemos verificar si cUrl está habilitado. Crea un info.phparchivo y ejecútalo.

<?php
    phpinfo();
?>

Cuando ejecute este archivo, mostrará toda la información sobre PHP. Antes de continuar, es necesario configurar PATHvariables para PHP.

Si está configurado, puede continuar. info.phpBuscar cURL en .

Si no está habilitado, vaya a la carpeta de inicio de PHP y busque php.iniel archivo. El camino más probable es C:\php74\php.ini.

Abra el archivo usando un editor de texto php.ini. Busque curl y encontrará algo como esto:

;extension=php_curl.dll

O para versiones más nuevas de PHP:

;extension=curl

Retirar ahora ;antes de extender. Guarde php.iniel archivo y salga, reinicie el servidor que está utilizando o localhost.

extension=curl

info.phpCorre y busca de nuevo cURL support. Ya verás:

cURL support: enabled

Esto significa que cURL está habilitado y listo. php_curl.dllSi cURL aún no está habilitado, pruebe con la ruta absoluta después de la expansión .

extension=C:/php74/ext/php_curl.dll

[Creando un proxy usando cURL y PHP]

cURL tiene muchas palabras clave diferentes para diferentes operaciones. Veamos un ejemplo de cómo crear una solicitud de proxy para una URL determinada:

//URL you want to apply cURL proxy.
$site = 'http://google.com';

// The Proxy IP address
$proxy_ip = '138.117.84.240';

//The proxy port.
$proxy_port = '999';

//Authentication information for proxy, username and password.
$Username = 'demouser';
$Password = 'demopassword';

//Initiate cURL response
$curl_reponse = curl_init($site);
curl_setopt($curl_reponse, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_reponse, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl_reponse, CURLOPT_HTTPPROXYTUNNEL , 1);

//Setting the IP address for proxy.
curl_setopt($curl_reponse, CURLOPT_PROXY, $proxy_ip);

//Setting the port for proxy.
curl_setopt($curl_reponse, CURLOPT_PROXYPORT, $proxy_port);

//Specifying the authentication information.
curl_setopt($curl_reponse, CURLOPT_PROXYUSERPWD, "$Username:$Password");

//Define the proxy server type, it is not neccessary, incase there is proxy connection aborted error. 
//The defaults type is CURLPROXY_HTTP, and the other options are CURLPROXY_SOCKS4, CURLPROXY_SOCKS4A, CURLPROXY_SOCKS5,and CURLPROXY_SOCKS5_HOSTNAME.
curl_setopt($curl_reponse, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);

//Execute the proxy request.
$output = curl_exec($curl_reponse);

//All the errors with number are given at this link from PHP Manual https://www.php.net/manual/en/function.curl-errno.php
//Error Number
echo curl_errno($curl_reponse).'<br/>';
// Error Info
echo curl_error($curl_reponse).'<br/>';

//Show the output, Return a cURL handle on success, and FALSE if there is an error.
echo $output;

El código anterior es google.comla configuración que crea una solicitud de proxy para ejecutar. El código utiliza autenticación de proxy.

El proxy no necesita conectarse a una IP y un puerto determinados. Si la conexión proxy tiene éxito, devolverá verdadero o un identificador de cURL.

Si hay algún error, imprimirá el número de error y la información y devolverá falso. Consulte el resultado de uno de los errores más comunes:

28
Failed to connect to 138.117.84.240 port 999: Timed out

Supongo que te gusta

Origin blog.csdn.net/weixin_50251467/article/details/131777397
Recomendado
Clasificación