Функция устанавливает соединение через прокси и возвращает открытый сокет. дальше работаем с сокетом аналогично, как если бы открыли его через fsockopen Пример вызова: $fp=socks_connect('1.2.3.4',1080,'ya.ru',80); Функция не моя. Автора не помню.
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; } } }
|