Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Сеть > Работа с Socks 5


Автор: alligator 16.7.2006, 21:54
Никак не могу получить smtp баннер где ошибка ? подкажите....
Код

$fp = fsockopen("71.194.169.49", 4724, $errno, $errstr, 30);
//$msg = pack("CCC",5,1,0);
$msg = pack("CCCCa4n", 5, 1, 0, 1, gethostbyname("smtp.mail.ru"),25);
stream_set_timeout($fp, 10);
$put = fwrite($fp,$msg);
  while (!feof($fp)) {
       $array_ = fgets($fp);
  }
   fclose($fp);
print "<pre>";
print_r($response = unpack("C*",$array_));
print "</pre>"; 

 

Автор: alligator 17.7.2006, 09:49
Я уже запарился виснет на чтении сокета циклом и всё... а без цикла нормально..... 

Автор: alligator 18.7.2006, 00:11
Проблема решена... 

Автор: alligator 18.7.2006, 09:44
Вот кусок рабочего кода может кому понадобиться....
Код

function socks5(){
$fp = @fsockopen("socks", socksport, $errno, $errstr, 30) or die("<b>Ошибка :</b>$errstr ");
$buf["method"] = pack("CCC",5,1,0);
$buf["connect"] = pack("C4Nn", 5, 1, 0, 1, ip2long(gethostbyname("smtp.mail.ru")) , 25);
@fwrite($fp,$buf["method"],strlen($buf["method"])) or die("<b>Ошибка :</b> Невозможно записать данные в сокет!");
  @fwrite($fp,$buf["connect"]) or die("<b>Ошибка :</b> Невозможно записать данные в сокет!");
    $buf["recv"] = "";
      while ($rep=fread($fp,strlen($buf["connect"]))){
        $buf["recv"] .= $rep;
      }
 $responce = unpack("Cversion/Cresult/Creg/Ctype/Nip/nport/A*banner",$buf["recv"]);
fclose($fp);
   }
   

Автор: kiborg2000 4.11.2008, 19:50
alligator, а общение с smtp-сервером как наладить, куда ему команды писать?

И еще, скрипт долго отрабатывает, часто не выводит банер smtp, это в соксах самих проблема??

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)