Вопрос

Discussion in 'PHP' started by !llusion, 27 Jun 2006.

  1. !llusion

    !llusion New Member

    Joined:
    4 Jun 2006
    Messages:
    9
    Likes Received:
    1
    Reputations:
    0
    Ребят, подскажите пожалуйста...перерыл много форумов и статей но так и не нашёл...как формируеться запрос к Сокс-прокси?
    Грубо говоря нужно "пропустить" коннект через прокси, но не посылая хттп-запрос и при этом задать порт...

    Через обычный то нормально работает (кстати кто-то спрашивал):
    Code:
    <?php
    $proxy = "127.0.0.1";
    $port = 8080;
    
    $url = "http://antichat.ru/";
    
    
    $fp = fsockopen($proxy, $port);
    fputs($fp, "GET $url HTTP/1.0\r\nHost: $proxy\r\n\r\n");
    
    while(!feof($fp)){
      $line = fgets($fp, 1024);
      print($line);
    }
    fclose($fp);
    
    print $line;
    ?>
    
    Но нужен не ХТТП-прокси и не ХТТП-пакет...
     
  2. ZaCo

    ZaCo Banned

    Joined:
    20 Jun 2005
    Messages:
    737
    Likes Received:
    336
    Reputations:
    215
    не советую с этого начинать - много заморочек всяких... посмотри через сниффер что например фф посылает серверу и тд и вот еще http://www.opennet.ru/base/net/socks5_rfc1928.txt.html почитай
     
  3. !llusion

    !llusion New Member

    Joined:
    4 Jun 2006
    Messages:
    9
    Likes Received:
    1
    Reputations:
    0
    Хм...глянул...пасибо...тоже самое что описывать протокол Аси)
    Тогда вопрос в топку: как через ХТТП-прокси осуществить подключение на ЗАДАННЫЙ порт и не посылать ХТТП-заголовок?
     
  4. ZaCo

    ZaCo Banned

    Joined:
    20 Jun 2005
    Messages:
    737
    Likes Received:
    336
    Reputations:
    215
    метод connect копай.
     
  5. grinay

    grinay IQ- 137%

    Joined:
    15 Jun 2004
    Messages:
    409
    Likes Received:
    174
    Reputations:
    305
    Стукни в асю помогу..Заодно и поподробнее обьясниш что надо.
     
  6. DIAgen

    DIAgen Banned Life!

    Joined:
    2 May 2006
    Messages:
    1,055
    Likes Received:
    376
    Reputations:
    460
    PHP:
    <?    
    $from =$_GET['from'];    
    $to =$_GET['to'];    
    $pfrom =$_GET['pfrom'];    
    $pto =$_GET['pto'];    
    $outfile =$_GET['outfile'];    
    $timeout =$_GET['timeout'];    
    if (
    $outfile==''$outfile='out.txt';    
    if (
    $timeout==''$timeout=3;    
    function 
    hex2bin($dump){    
    $dump=str_replace(' '''$dump);    
    $res='';    
    $dumplen=strlen($dump);    
    for (
    $i=0$i<$dumplen$i+=2){    
    $bt=$dump[$i].$dump[$i+1];    
    $res=$res.chr(hexdec($bt));}    
    return 
    $res; }    
    function 
    hexlen($s) {    
    $s=str_replace(' '''$s);    
    if (
    strlen($s)/<16$v='0';    
    if (
    strlen($s)/<256$v.='0';    
    if (
    strlen($s)/<4096$v.='0';    
    $v.=dechex(strlen($s)/2);    
    return 
    $v; }    
    function 
    sockcheck$sockip$sockport$timeout=10) {    
    $sres=0;    
    $f=fsockopen($sockip$sockport$ern$ers$timeout);    
    if (!
    $f) {    
    return 
    0;    
    } else {    
    $s=hex2bin('05 02 00 02');    
    fputs ($f$s);    
    $g=fgets ($f,2);    
    $listbin2hex($g);    
    if ((
    $g[0]==hex2bin('04')) or ($g[0]==hex2bin('05'))) $sres=1;    
    fclose($f);     
    return 
    $sres; }    
    }    
    $form "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"get\">    
    <center>    
    <b>PHP socks proxyhunter by nerezus(ICQ 547097),<br> 2005, GPL v.2</b><br>    
    IP range:<br>    
    <input type=\"text\" name=\"from\" size=\"15\" maxlength=\"15\">    
    <input type=\"text\" name=\"to\" size=\"15\" maxlength=\"15\"><br>    
    Port range:<br>    
    <input type=\"text\" name=\"pfrom\" size=\"5\" maxlength=\"5\">    
    <input type=\"text\" name=\"pto\" size=\"5\" maxlength=\"5\"><br>    
    Timeout: <input type=\"text\" name=\"timeout\" size=\"2\" maxlength=\"2\"><br>    
    Outfile: <br>    
    <input type=\"text\" name=\"outfile\" size=\"16\" maxlength=\"255\"><br>    
    <input type=\"submit\" value=\".: GO! :.\">    
    </form></center>"
    ;    
    if (
    $from == '' or $to == '' or $pfrom=='' or $pto=='')  echo $form;  else {    
    $flist=explode('.'$from);    
    $tlist=explode('.'$to);    
    $fip=$flist[0]*256*256*256+$flist[1]*256*256+$flist[2]*256+$flist[3];    
    $tip=$tlist[0]*256*256*256+$tlist[1]*256*256+$tlist[2]*256+$tlist[3];    
    for (
    $i=$fip$i<=$tip$i++) {    
        
    $tmp=$i;    
        
    $d1=floor($tmp / (256*256*256)); $tmp=$tmp-$d1*(256*256*256);    
        
    $d2=floor($tmp / (256*256)); $tmp=$tmp-$d2*(256*256);    
        
    $d3=floor($tmp 256); $tmp=$tmp-$d3*256;    
        
    $d4=$tmp;    
        
    $ip="$d1.$d2.$d3.$d4";    
        if ((
    $d4!=0) && ($d4!=255)){     
            for (
    $prt=$pfrom$prt<=$pto$prt++) {    
                if (
    sockcheck($ip$prt$timeout)) {     
                    
    $file fopen ($outfile"a");    
                    echo 
    "$ip:$prt<br>\n";    
                    
    fputs ($file"$ip:$prt\n");    
                    
    fclose($file);    
                    
    flush();    
                    }    
                }    
                
    } } }
    ?>
     
  7. !llusion

    !llusion New Member

    Joined:
    4 Jun 2006
    Messages:
    9
    Likes Received:
    1
    Reputations:
    0
    Grin, отписал...
    Ди, да я этот исходник уже копал...суть проверки то понятна...непонятно как передавать ПРАВИЛЬНО запрос на сокс-прокси...