PDA

Просмотр полной версии : Многопоточный сканер директорий сайта


oRb
26.05.2009, 20:20
Кто прочел название треда, наверняка подумали "нахрена этот очередной боян?". Так вот задачей было - разобраться с "Process Control support in PHP", т.е. научиться использовать не псевдомногопоточность (через крон, пул неблокирующих сокетов, etc), а нормальное создание процесса в стиле Unix.

Ограничения:
[#] под виндой работать не будет
[#] php нужно собирать с опцией --enable-pcntl

Фунционал:
[#] head запросы
[#] каждый поток открывает всего одно Keep-Alive соединение
[#] можно указать при каких кодах ответов путь будет считаться несуществующим.
[#] можно указать при каких значениях поля location путь будет считаться несуществующим.
[#] для каждого потока юзер-агент берется рандомно.

Пример работы (канал 2 мб/с, в базе было 99 юрлов, 5 потоков):
# /usr/bin/php index.php php.su
Host: php.su
Ip: 82.140.91.131
Port: 80
Start: 26-05-2009 19:41:17
# GO GO GO!
[+] 500 - phpmyadmin/
[+] 200 - info.php
[+] 302 - images/
[+] 200 - icons/
Finish: 26-05-2009 19:41:19

Links:
[#] http://ru2.php.net/manual/ru/intro.pcntl.php
[#] быдлокод в аттаче

ps: есть пока 1 бага/фича, с которой не разобрался. После завершения первого потока, скрипт отвязывается от терминала. Если кого-то это смущает, можно перенаправить вывод в файл.

gibson
26.05.2009, 23:38
вот еще не плохая заметка по этому поводу. От туда только выводы
http://www.charnad.com/blog/kak-proverit-sushhestvuet-li-sajt/

Chaak
27.05.2009, 01:25
А чего это в нем так много кода?
Там строчек 30 от силы

Shadow_p1raT
28.06.2009, 17:25
Перезалейте пожалуйста.