ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Php - многопоточность на уровне ОС или делаем недетерминированный аппарат
  #1  
Старый 09.06.2008, 22:55
Аватар для desTiny
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию Php - многопоточность на уровне ОС или делаем недетерминированный аппарат

Недавно пришла мне в голову одна идейка, как реализовать в PHP многопоточность. Притом настоящую, а не выдуманную. Заранее предупреждаю, что хоть идея и весьма экстравагантна, но она работает.

Итак, предположим, мы хотим подобрать пароль (в моём упрощённом случае - некое число - идентификатор). Как это можно сделать, используя многопоточность? Делим всё множество вариантов на (почти) равные части, а дальше уже для каждой части выполняем свой поток.

PHP не поддерживает многопоточность. Но PHP позволяет одновременно выполнять на сервере много PHP-скриптов... Поняли мою идею? Наша цель - чтобы php-файл до поры до времени создавал некоторые файлы (дочерние php-скрипты) и запускал их, посредством обращения к серверу, то есть к себе же. Как бы это странно не звучало, но оно работает

Наслаждаемся (только порт не забудте поменять, если надо, на 80):

1.php(название просто так менять НЕЛЬЗЯ!)
PHP код:
<?php //Coded by desTiny :-)
$start=0;
$end=100;
ini_set("max_execution_time",0);
function 
check($id){
    if (
file_exists("f.txt")){
      if (
$name!=1)unlink(__FILE__); 
      die();
    }
    if (
$id == 79){
        if (
$name!=1)unlink(__FILE__);
        
file_put_contents("f.txt"$id);
        die();
    }
}

(isset(
$_GET['name']) && is_numeric($_GET['name']) && ($_GET['name'] > 0)) ? $name=$_GET['name'] : $name 1;
if (
$end $start 10)
  for (; 
$start <= $end$start++)
    
check($start);
else{
    
$name1 $name;   //строим хип
    
$name2 $name 1;
    
$st round(($start $end)/2);
    
$f file("$name.php");
    
$f[1]="\$start=$start;\r\n";
    
$f[2]="\$end=$st;\r\n";
    
file_put_contents("$name1.php"$f);
    
$st++;
    
$f[1]="\$start=$st;\r\n";
    
$f[2]="\$end=$end;\r\n";
    
file_put_contents("$name2.php"$f);
    
$ock=fsockopen("127.0.0.1",8080);
    
$path=dirname($_SERVER['PHP_SELF']);
    
$p="GET $path\\$name1.php?name=$name1 HTTP/1.1\r\n".
       
"Host: 127.0.0.1\r\n".
       
"\r\n";
    
fputs($ock$p);
    
fclose($ock);   
    
$ock=fsockopen("127.0.0.1",8080);
    
$p="GET $path\\$name2.php?name=$name2 HTTP/1.1\r\n".
       
"Host: 127.0.0.1\r\n".
       
"\r\n";
    
fputs($ock$p);
    
fclose($ock);
}
if (
$name!=1)unlink(__FILE__);
?>
Функция check проверяет переданный ей id. У меня это - банальное сравнение с 79, но могло быть что угодно.

Ответ скрипта смотрим в файле "f.txt"


PS Разумеется, способ бредовый, но почему бы не поделиться необычной идеей?

(c)С вами был desTiny. Приятного просмотра =)
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хакер и закон! SladerNon Болталка 17 12.11.2009 09:42
Хакеры и кракеры или "Что такое хорошо и что такое плохо?" foreva Чужие Статьи 12 09.02.2008 12:26
Обнаружение Sql инъекций и Css атак k00p3r Чужие Статьи 0 12.06.2005 20:43
PHP vs mod_rewrite Trinux PHP, PERL, MySQL, JavaScript 11 13.05.2005 21:25
Нужен скрипт на php или perl, проверяющий прокси и Чаты 0 05.10.2004 23:04



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ