PHP код:
function socks_connect($host, $port, $dh, $dp) //адрес скоса, порт сокса, адрес сайта, порт сайта.
{
$result=true;
$f = fsockopen($host, $port) or $result=false;
if($result)
{
$h = gethostbyname($dh);
preg_match("#(\d+)\.(\d+)\.(\d+)\.(\d+)#", $h, $m);
fwrite($f, "\x05\x01\x00");
$r = fread($f, 2);
if(!(ord($r[0])==5 and ord($r[1])==0)) $result=false;
if($result)
{
fwrite($f, "\x05\x01\x00\x01" . chr($m[1]).chr($m[2]).chr($m[3]).chr($m[4]).chr($dp/256).chr($dp%256));
$r = fread($f, 10);
if(!(ord($r[0])==5 and ord($r[1])==0))
return false;
else
return $f;
}
}
}
Функция устанавливает соединение через прокси и возвращает открытый сокет. дальше работаем с сокетом аналогично, как если бы открыли его через fsockopen
Пример вызова: $fp=socks_connect('1.2.3.4',1080,'ya.ru',80);
Функция не моя. Автора не помню.