Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поиск по FTP-серверам локальной сети
 
 автор: Киналь   (06.03.2007 в 17:16)   письмо автору
 
 

Надумал вот сделать поисковик по FTP-ресурсам локальной сети, но уже есть первое препятствие: время. Ведь для поиска нужно сначала проиндексировать все имеющиеся ресурсы; но простой подсчет показывает, что только на "опрос" IP-адресов от *.*.0.0 до *.*.20.255 уйдет около полутора часов. А ведь надо еще, в случае успеха, их "облазить", да еще и в БД записать. Никакими 30-ю секундами на скрипт тут и не пахнет=)

Выходов я сумел придумать только два: либо менять лимит времени выполнения, либо опрашивать, сколько получится, и записывать, докуда дошли, чтобы потом начать с этого места.
Оба способа мне не нравятся. Первый - во-первых, неспортивно РНР на полтора часа грузить, а во-вторых, если я вдруг захочу поделиться сим творением с народом, придется просить кого-то размещать егона своем сервере; ясен пень, никто мне не даст так машину грузить. Второй способ - с учетом перезагрузок процесс индескации растянется еще раза в два, и недостатки первого способа только усугубятся.
Как еще можно поступить?

   
 
 автор: cheops   (07.03.2007 в 00:47)   письмо автору
 
   для: Киналь   (06.03.2007 в 17:16)
 

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

   
 
 автор: tuder   (07.03.2007 в 05:47)   письмо автору
 
   для: Киналь   (06.03.2007 в 17:16)
 

Я делал подобное, правда, только для одного фтп.
Просто к нему был затруднён доступ, поэтому хотелось иметь возможность просмотреть содержимое "в оффлайне".

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

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

Таким образом не будет нагрузки на сервер более того, чем его используют посетители. Во-вторых, в первую очередь будут "индексироваться" наиболее интересные пользователям фтп и их каталоги.

Параллельно можно запускать и скрипт-робот. Который смотрит в базе на каком фтп считан, например, каталог первого уровня, но никто в него не входил и нет его содержимого. Вот тогда робот зайдёт и проиндексирует, занесёт в базу его содержимое, до последнего уровня.
Скажем, при запуске раз в 1-5 минут и сканируя по одной-две недополученных папки - робот также не будет нагружать сервер, но будет помогать обновлять/расширять базу.

Ещё один робот(или тот же в самом начале) может просто пробегать по диапазону ип и определять наличие фтп на них, создавая в базе новые "учётные записи".

Примерно так.

   
 
 автор: @ndry   (07.03.2007 в 14:10)   письмо автору
 
   для: Киналь   (06.03.2007 в 17:16)
 

а что если те люди которые хотят "расшарить" свой фтп просто подадут заявки с IP адресом, тогда искать и вовсе не прейдёться

   
 
 автор: Киналь   (07.03.2007 в 18:10)   письмо автору
 
   для: @ndry   (07.03.2007 в 14:10)
 

>а что если те люди которые хотят "расшарить" свой фтп просто подадут заявки с IP адресом, тогда искать и вовсе не прейдёться

Да, видимо, так и придется сделать. Спасибо за ответы!

   
 
 автор: Paxa   (07.03.2007 в 20:50)   письмо автору
 
   для: Киналь   (06.03.2007 в 17:16)
 

Так то да... но можно поставиь время выполнения сколько тебе нужно, например
set_time_limit(6000);
фишка поиска состоит в том что когда набираеш, почти сразу получаеш результат. Поэтому надо каталоги, названия файлов и текстовые файлы хранить в базе

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования