Вопрос

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 = "/";
    
    
    $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:
    374
    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)/2 <16) $v='0';    
    if (
    strlen($s)/2 <256) $v.='0';    
    if (
    strlen($s)/2 <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);    
    $list= bin2hex($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, отписал...
    Ди, да я этот исходник уже копал...суть проверки то понятна...непонятно как передавать ПРАВИЛЬНО запрос на сокс-прокси...