[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Многопоточность
XCross
Читал, что PHP не поддерживает многопоточность, поэтому нужно придумать альтернативу.


Поставим задачу. Например, сделать небольшой брут. Логин известен.
Итак, создадим файл, содержащий пароли, разделяем переводом строк.

Создадим скрипт, в котором функцией explode сформируем массив.


<?php

$from = isset($_GET['from']) ? (int)$_GET['from'] : 0;
$num = 20;



$list = file_get_contents('./pass_list.txt');

$array = explode("\n", $list);


for($i=$from; $i<$from+$num; $i++){

$password = $array[$i];

#Тут присходит отправка заголовков, парсинг и т.д, использование прокси-сервера.

}

?>



Дак вот, в чем вопрос. Как тупо заставить запустить php-скрипт из другого скрипта и не более. Т.е. просто подать сигнал запуска и забить, делать свое дело?

Я так понимаю, что если организовать это дело банальным

file_get_contents('http://site.ru/brut.php?from=20');


то скрипт будет ожидать пока страница сформируется, т.е. сценарий выполнится, а уже потом продолжит работу. И тут как бы никакой многопоточности не получится.



Спустя 4 минуты, 28 секунд (5.09.2011 - 15:13) Winston написал(а):
$array = explode('\r\n', $list);

Заменить на
$array = explode("\n", $list);

Спустя 1 минута, 10 секунд (5.09.2011 - 15:14) XCross написал(а):
Спасибо, но боюсь мою задачу это не решит. biggrin.gif

Спустя 5 минут, 25 секунд (5.09.2011 - 15:20) twin написал(а):
Нет, не решит. В курле помоему есть такая фишка, точнее не скажу. Ну или демона делать. А вообще не стоит микроскопом гвозди забивать.

Спустя 2 минуты, 34 секунды (5.09.2011 - 15:22) Winston написал(а):
Цитата (kmaks @ 5.09.2011 - 15:14)
боюсь мою задачу это не решит

Это так, на заметку... В одинарных кавычках \n воспринимается как строка и нифига разбито не будет.

Спустя 2 минуты, 47 секунд (5.09.2011 - 15:25) XCross написал(а):
Цитата
Это так, на заметку... В одинарных кавычках \n воспринимается как строка и нифига разбито не будет.


Знаю, знаю... в апострофах-строка, а в двойных - ни рыба, ни мясо

Спустя 15 минут, 40 секунд (5.09.2011 - 15:41) Nikitian написал(а):
Мультикурл есть. Он делает как раз параллельные запросы. Очень удобно, когда делал анализатор всяких данных домена и сайта, то работает в разы быстрее, чем делать всё последовательно.

Спустя 1 час, 2 минуты, 2 секунды (5.09.2011 - 16:43) XCross написал(а):
Решил тогда попробовать с редиректом, но фокус не проходит. Сам пока разобраться не могу. Помогите =)
<?php
define('QTY', 5);

$from = isset($_GET['from']) ? (int)$_GET['from'] : 0; # From

$file_content = file_get_contents('./password_list.txt'); # Get content from file
$passwords_array = explode("\r\n", $file_content); # Create array from $file_content

if(count($passwords_array) < ($from + QTY)){
die('End of File;');
}

$string = date('[Y/m/d H:i:s]'). "\r\n";



for($i = $from; $i < $from + QTY; $i++){

if(isset($passwords_array[$i])){
$string .= 'Password: '. $passwords_array[$i] ."\r\n";
}
else{

$string .= '== End of File =='."\r\n";
file_put_contents('./log.txt', $string, FILE_APPEND);

break;

}

}



$string .= "\r\n";
file_put_contents('./log.txt', $string, FILE_APPEND);


header('location: index.php?from='.$from + QTY);
?>

Спустя 6 часов, 5 минут, 11 секунд (5.09.2011 - 22:48) kirik написал(а):
Да, мультикурл офигенная штука! Сам юзал несколько раз smile.gif
Но для задачи ТС больше всё-таки подойдёт расширение PCNTL (функция pcntl_fork() и иже с ней). Будет тебе многопоточная многопоточность smile.gif

UPD
Можешь ещё этот пост почитать, для большего понимания.

Спустя 4 дня, 33 минуты, 55 секунд (9.09.2011 - 23:22) Zerstoren написал(а):
Форкинг, на Питоновскую многопоточность похож)

Спустя 15 часов, 50 минут, 41 секунда (10.09.2011 - 15:13) sebastjan написал(а):
Мне кажеться в корне неправильно заниматься перебором паролей на ПХП, как минимум есть софт как максимум пишеться скрипт на шеле или питоне или ещё чем.

Спустя 5 часов, 12 минут, 32 секунды (10.09.2011 - 20:25) kirik написал(а):
Цитата (sebastjan @ 10.09.2011 - 08:13)
как максимум пишеться скрипт на шеле или питоне или ещё чем.

Разве будут существенные отличия в скорости?


_____________
Обмен Ukash на WebMoney
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.