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


Автор: alligator 19.7.2006, 15:23
Код

$fp = fsockopen("ip", 10080, $errno, $errstr);
fwrite($fp,"CONNECT 194.67.23.111:25 HTTP/1.1\r\n\r\n");
$buff["send"]="";
while($res = fread($fp,1024)){
  $buff["send"].=$res;
}
print $buff["send"];

при работе через прокси добавляються заголовки 
HTTP_FORWARDED_FOR
HTTP_VIA
...
Надо проверить анонимный ли прокси или нет , но когда выполняю коннект на прокси выше указанным скриптом то он выводит пустую страницу....  

Автор: alligator 20.7.2006, 03:34
Вопрос снят , прокси не поддерживал метод CONNECT
Сделал проверку GET запросом.
Кому интересно вот:
Код

set_time_limit(80);
$fp = @fsockopen("Ip", 3128, $errno, $errstr, 15) or die($errstr);
$buff["request"] = "GET http://nnm.ru/index.php HTTP/1.1\r\n";
$buff["request"] .= "Host: nnm.ru\r\n";
$buff["request"] .= "Accept: */*\r\n";
$buff["request"] .= "Content-Type: text/html; charset=windows-1251\r\n";
$buff["request"] .= "Connection: close\r\n\r\n";
fwrite($fp,$buff["request"]);
$buff['recv'] .="";
while ($res = fread($fp,1024)){
    $buff['recv'] .= $res;
}
if(preg_match("/^HTTP\/\S+\s+(200)\s+/i",$buff['recv'],$responce)){
   if($responce[1]=='200'){
      print "Proxy works!";}}
       if(preg_match("/Proxy-Connection:\s+\w+/i",$buff['recv'],$proxy)){
         print "Proxy-Connection Found\r\n<br />";}
    if(preg_match("/X-Cache:\s?\w+\s?\w+\s?(\w+\.?\w+\.?\w+)/i",$buff['recv'],$cache)){
           print "You Proxy :".$cache[1]."\r\n<br />";}
  if(preg_match("/Via:\s?\d?\.?\d?/i",$buff['recv'],$via)){
     print "You proxy is anonymous\r\n<br />";}
if(preg_match("/X-Forwarded-For:/i",$buff['recv'],$transparent)){
          print "You proxy is Transparent\r\n<br />";}

Попозже выложу проверку методом CONNECT.....  

Автор: -=Ustas=- 20.7.2006, 17:48
alligator, ты думаешь, что этот скрипт засечет сегодняшние анонимные прокси?  

Автор: alligator 20.7.2006, 21:13
Цитата(-=Ustas=- @  20.7.2006,  18:48 Найти цитируемый пост)
alligator, ты думаешь, что этот скрипт засечет сегодняшние анонимные прокси? 


-=Ustas=-, Задача скрипта , проверять  аномниный ли прокси
Можно не определять реальный ip , но стопудово можно проверить использует ли клиент прокси , если конечно он не элитный.
А а если используеться спец прокси даже прозрачный,ip засеч почти не реально.
Существует 3 типа прокси
1. Прозрачные которые передают заголовок X-Forwarded-For
1.1 Но есть модификации которые подменяют ip такназываемые искажающие прокси
2. Анонимные прокси , не передают X-Forwarded-For , но могут передавать другие заголовки например HTTP_VIA и HTTP_PROXY_CONNECTION
3. Анонимный элитный прокси , не передаёт никаких заголовков потому являеться полностью анонимным 

Автор: -=Ustas=- 21.7.2006, 09:35
Цитата(alligator @  20.7.2006,  21:13 Найти цитируемый пост)
Задача скрипта , проверять  аномниный ли прокси

Да я же не спрашиваю, что он делает smile это я сам вижу. Я тебе говорил за то, что сейчас уже практически все прокси сервера навороченные и просечь их - анонимные они или нет НЕВЗМОЖНО! smile 

Автор: alligator 22.7.2006, 00:09
Цитата(-=Ustas=- @  21.7.2006,  10:35 Найти цитируемый пост)
Я тебе говорил за то, что сейчас уже практически все прокси сервера навороченные и просечь их - анонимные они или нет НЕВЗМОЖНО!   

Да согласен , но не у всех они есть =) 

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