温馨提示×

SOCKS5代理在PHP中的配置最佳实践

PHP
小樊
107
2024-08-29 12:04:09
栏目: 编程语言

在 PHP 中使用 SOCKS5 代理,您可以选择使用 cURL 或者 Guzzle 这样的 HTTP 客户端库

  1. 使用 cURL 配置 SOCKS5 代理:
<?php
$url = 'http://example.com';

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_PROXY, 'socks5://proxy.example.com:1080'); // 将此行替换为您的 SOCKS5 代理地址和端口
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true);

$response = curl_exec($ch);

if ($response === false) {
    echo 'Error: ' . curl_error($ch);
} else {
    echo $response;
}

curl_close($ch);
?>
  1. 使用 Guzzle 配置 SOCKS5 代理:

首先,确保已安装 Guzzle 客户端库。如果尚未安装,请运行以下命令进行安装:

composer require guzzlehttp/guzzle

然后,使用以下代码配置 SOCKS5 代理:

<?php
require 'vendor/autoload.php';

use GuzzleHttp\Client;

$url = 'http://example.com';
$proxy = 'socks5://proxy.example.com:1080'; // 将此行替换为您的 SOCKS5 代理地址和端口

$client = new Client([
    'base_uri' => $url,
    'timeout'  => 5.0,
]);

try {
    $response = $client->request('GET', '/', [
        'proxy' => $proxy,
    ]);
    
    echo $response->getBody();
} catch (\GuzzleHttp\Exception\RequestException $e) {
    echo 'Error: ' . $e->getMessage();
}
?>

这些示例展示了如何在 PHP 中使用 cURL 和 Guzzle 配置 SOCKS5 代理。根据您的需求和喜好选择一个库进行实现。

0