要配置PHP以使用SOCKS5代理,您需要安裝一個支持SOCKS5的擴展,例如socksproxy
或cURL
方法1:使用cURL擴展
php -m | grep curl
如果未安裝,請根據您的操作系統和PHP版本安裝cURL擴展。
<?php
$proxy = 'socks5://127.0.0.1:1080'; // SOCKS5代理服務器地址和端口
$url = 'http://example.com'; // 目標URL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
$result = curl_exec($ch);
$error = curl_error($ch);
if ($error) {
echo "Error: $error";
} else {
echo "Result: $result";
}
curl_close($ch);
?>
方法2:使用socksproxy擴展
安裝socksproxy擴展。您可以從GitHub上的項目頁面(https://github.com/clue/socks)獲取有關如何安裝和配置的詳細信息。
編寫一個使用SOCKS5代理的PHP腳本。例如:
<?php
require 'vendor/autoload.php';
use Clue\React\Socks\Client;
use React\EventLoop\Factory as LoopFactory;
use React\Socket\Connector;
use React\Socket\ConnectionInterface;
$loop = LoopFactory::create();
$client = new Client('socks5://127.0.0.1:1080', new Connector($loop));
$connector = new Connector($loop, array(
'tcp' => $client,
'timeout' => 3.0,
'dns' => false
));
$connector->connect('tcp://example.com:80')->then(function (ConnectionInterface $connection) {
$connection->write("GET / HTTP/1.0\r\n\r\n");
$connection->on('data', function ($data) {
echo $data;
});
}, function ($error) {
echo "Error: " . $error->getMessage() . "\n";
});
$loop->run();
?>
注意:這兩種方法都需要您有一個正常工作的SOCKS5代理服務器。在上述示例中,代理服務器位于127.0.0.1
的1080
端口。請根據您的實際情況修改代理服務器地址和端口。