Был у меня простой скриптик, который ходи через HTTP проксю за данными и всё было хорошо.
Пришлось сменить проксю на SOCKS5 и настала печаль - скрипт перестал работать. понятное дело, что я изменил тип прокси в скрипте, но вот это ничего не дало. в TcpDump видно, что обращается он по прежднему как к HTTP, нет носковых запросов, а сразу переходит к делу. Как так? Я что-то не так делаю?
Вырезка из кода
$proxy = "ip:1080";
$p_type = CURLPROXY_SOCKS5;
[...]
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://.../");
curl_setopt($ch, CURLOPT_PROXY, $proxy);
if (isset($p_type)) {
curl_setopt($ch, CURLOPT_PROXYTYPE, $p_type);
}
//curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL,1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_NOPROGRESS, 0);
curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, 'callback');
curl_setopt($ch, CURLOPT_VERBOSE,TRUE);
curl_setopt($ch, CURLOPT_STDERR,$f);
$result = curl_exec($ch);
вот такие дела...
кстати из командной строки curl работает с --socks5 ключём