Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Типо кривой сканер директорий( (https://forum.antichat.xyz/showthread.php?t=104381)

Велемир 02.02.2009 20:50

Типо кривой сканер директорий(
 
Снова превед.Вот с горем попалам убил сегодняшний день((( :
PHP код:


<?php

$path 
= array();

$fp fopen("paths.txt","r");

while(!
feof($fp)) {

$path[] = fgets($fp,4096);

}




set_time_limit(0);

$host "www.hackzone.ru";
$port "80";
$sock fsockopen($host,$port,$errno);
$i 0;

for(
$i 0;$i <count($path);$i++) {

$req "HEAD /$path[$i] HTTP/1.1\r\r\n\n";
$req .= "Host: $host\r\n";
$req .= "Connection: Close\r\n";



if(!
$sock) {

echo 
$errno($errstr);

}

fputs($sock,$req);

while(!
feof($sock)) {

$x .= fgets($sock,4096);


$x explode(" ",$x);

if (
$x[1] == 400 or 404) {

echo 
"<br>Нету папочки(</br>";

}

else if (
$x[1] == 403) {

echo 
"<br><font color='yellow'>Доступ запрещён</font></br>";

}

else if (
$x[1] == 200 or 301) {

echo 
"<br><font color = 'red'>Есть!!!</font></br>";

}

else {

echo 
"<br>Ouknown Code</br>";

}

}

}

fclose($sock);

?>

paths.txt содержит путь memb

Алгоритм кривой,но другого придумать не смог,ибо никогда не писал такие скрипты).

scrat: когда пишешь пост,сверху есть охуенная панелька - изучи её

Gifts 02.02.2009 21:36

Нам падать в экстазе от кривого кода с опечатками или это завуалированная просьба исправить? Смысл создания темы?

Велемир 02.02.2009 21:46

Завуалированная просьба исправить )))

oRb 02.02.2009 23:09

Цитата:

Сообщение от Велемир
Завуалированная просьба исправить )))

ты открываешь 1 коннект, и туда пишешь все запросы. Хотя в заголовках у тебя четко прописано:
Цитата:

Connection: Close
Выбрал такой заголовок, тогда открывай для каждого запроса новый коннект.

Не правильно:
PHP код:

$req "HEAD /$path[$i] HTTP/1.1\r\r\n\n";
$req .= "Host: $host\r\n";
$req .= "Connection: Close\r\n"

Правильно:
PHP код:

$req "HEAD /".$path[$i]." HTTP/1.1\r\n";
$req .= "Host: $host\r\n";
$req .= "Connection: Close\r\n\r\n"

Дальше скрипт не смотрел, этого хватило.

Велемир 02.02.2009 23:31

Да уж )Если уж заголовки отделять,то Host не в теме?))

Велемир 02.02.2009 23:47

Цитата:

Сообщение от oRb

Правильно:
PHP код:

$req "HEAD /".$path[$i]." HTTP/1.1\r\n";
$req .= "Host: $host\r\n";
$req .= "Connection: Close\r\n\r\n"

Дальше скрипт не смотрел, этого хватило.


$req = "HEAD /index.html HTTP/1.1\r\n";

Без операторов конкатенации и так работает)

Велемир 03.02.2009 00:08

Цитата:

Сообщение от oRb

Выбрал такой заголовок, тогда открывай для каждого запроса новый коннект.

Ага,знать бы ещё как ))

Gifts 03.02.2009 00:23

Велемир Как то так. Не проверял
PHP код:

<pre><?php
set_time_limit
(0);

$path = array();
$fp fopen("paths.txt","r");
while(!
feof($fp)) 
{
    
$path[] = trim(fgets($fp,4096));
}

function 
head($host,$path,$port=80)
{
    
$sock fsockopen($host,$port,$errno);
    
$req "HEAD /$path HTTP/1.1\r\n";
    
$req .= "Host: $host\r\n";
    
$req .= "Connection: Close\r\n\r\n";
    if(!
$sock) return $errno.'-'.$errstr;
    
fputs($sock,$req);
    
$x='';
    while(!
feof($sock)) $x .= fgets($sock,4096);
    
fclose($sock);
    return 
$x;
}

$host "www.hackzone.ru";
$port "80";

$c=count($path);

for(
$i 0;$i $c;$i++) 
{
    list(,
$status)=explode(" ",head($host,$path[$i],$port));
    switch (
$status)
    {
        case 
400:
        case 
404: echo "<br>Нету папочки(</br>";break;
        case 
403: echo "<br><font color='yellow'>Доступ запрещён</font></br>";break;
        case 
200:
        case 
301: echo "<br>Нету папочки(</br>";break;
        default: echo 
"<br>Unknown Code</br>";
    }    
}

?>


Велемир 03.02.2009 18:09

Надо же,работает!))Я как раз подумывал о той функции(функциональной реализации),но не допёр =_=.Потому и стал косячить:).Пасиппи.Единстве нная проблема в том,что он реагирует на все коды почти)

Pashkela 03.02.2009 21:13

http://pashkela.narod.ru/progi/SiteScaner.rar

а вот это реагирует только на то, на что надо реагировать


Время: 15:53