Как сделать прокси поток через socks5 для PHP?

У меня есть этот код:

<?php

$opt = array('socks5' => array(
'proxy' => 'tcp://proxyIP:port',
'request_fulluri' => true,
)
);

$stream = stream_context_create($opt);

if ($s = file_get_contents("http://yandex.ru/internet",FILE_USE_INCLUDE_PATH,$stream))
echo $s;

?>

Это не работает, я думаю … потому что сайт показывает мой IP вместо IP прокси.

Если я поставлю «http» вместо «socks5», это сработает и покажет мне IP прокси.

В моем прокси-сервере для ‘http’ у меня есть порт = 4000, для ‘socks5’ порт = 5000.

Но мне действительно нужно подключиться через SOCKS5 !!!

Пожалуйста, кто-нибудь знает, в чем проблема в моем коде ???

1

Решение

Я думаю, что невозможно заставить stream_context_create () работать с socks5. Лучшее решение — использовать curl. Пример в соответствии с вашими потребностями, изменить $proxyIP а также $proxyPort

<?php

//$opt = array('socks5' => array(
//                            'proxy' => 'tcp://proxyIP:port',
//                            'request_fulluri' => true,
//                        )
//            );
//
//$stream = stream_context_create($opt);
//
//if ($s = file_get_contents("http://yandex.ru/internet",FILE_USE_INCLUDE_PATH,$stream))
//echo $s;

$url = 'https://yandex.ru/internet';
$proxyIP = '0.0.0.0';
$proxyPort = 0;
//$proxy_user = '';
//$proxy_pass = '';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
//curl_setopt($ch, CURLOPT_PROXYUSERPWD, "{$proxy_user}:{$proxy_pass}");
curl_setopt($ch, CURLOPT_PROXY, $proxyIP);
curl_setopt($ch, CURLOPT_PROXYPORT, $proxyPort);

$s = curl_exec($ch);
curl_close($ch);

if ($s) {
echo $s;
}

Если вы не можете использовать curl или хотите использовать сокеты, пожалуйста, прочитайте это https://stackoverflow.com/a/31010287/3904683 ответ

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]