Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #28, МАРТ 2003 г.

БЕРЕГИТЕ WAREZ! РАСПРЕДЕЛЕННАЯ СИСТЕМА СКАЧКИ

cuttah & Donor

Спецвыпуск Xakep, номер #028, стр. 028-068-3


КАК НАСТРОИТЬ?

Настройка весьма проста. Ты просто копируешь весь набор этих скриптов в директорию cgi-bin. Ставишь скриптам (admin.cgi, list.cgi и download.cgi) права доступа 755 (chmod 755). Делается это через любой FTP клиент. Остальным файлам ставь 600. Возможно, что скрипты будут запускаться не с правами владельца файлов, а из-под nobody/apache. Тогда придется установить на директорию права в 777. Вот и все приготовления. Тебе остается только поправить html файлы с дизайном, залить базу и начать привлекать посетителей.

ЧЕГО ПОМЕНЯТЬ, ЧЕГО ДОБАВИТЬ?

Предлагаемый скрипт очень сырой. Это только небольшие зачатки от того варезного монстра, который можно намутить. Так что тебе придется еще попыхтеть :). А вот что стоит изменить. Во-первых, базу надо перенести в SQL. Для удобства создать две таблицы. Одну для архива имен файлов с описанием, а вторую со списком URL'ов. Вот как они примерно будут выглядеть в MySQL:

CREATE TABLE files(

id int NOT NULL PRIMARY KEY AUTO_INCREMENT ,

name varchar (30) NOT NULL ,

content varchar (40) NOT NULL

)

Это таблица для списка имеющихся файлов. Id - идентификатор файлов. Для каждого файла он разный. Name - имя файла, content - его описание. А вот вторая таблица для самих URL:

CREATE TABLE url(

id int NOT NULL,

url varchar (50) NOT NULL

)

Здесь, я думаю, и так все ясно. Главное, чтобы id у второй таблицы совпадал с id первой. Ведь id из первой таблицы будет соответствовать id во второй (а если точнее, то просто какие-то URL'ы).

Второй этап: сделать нормальное отображение списка файлов. Ведь в моей реализации он выдает просто сплошной несортированный список. Тебе предстоит добавить сортировку (в SQL это реализуется крайне удобно), а также сделать вывод списка по первой букве. Это очень понадобится, когда архив будет большим (попробуй зайди на www.cracks.am). Также придется писать поиск по имени файла или по его описанию. Надо ведь заботиться о своих посетителях :).

Для удобства твоей работы в администраторскую панель необходимо будет добавить возможность автоматической закачки файлов на распределенные сервера вареза. Закачку лучше реализовать через ftp (взять стандартный модуль Net::FTP) либо установить специальный скрипт на каждый сайт, который также сможет принимать новые файлы. В общем, это зависит полностью от твоей фантазии, главное, чтобы выбранный метод был как можно секьюрнее.

Также, в принципе, можно добавить проверку загруженности серверов. Но для этого придется ставить софт, который будет постоянно определять загруженность компьютера и загруженность канала, а это сделать уже не так просто. Во-первых, далеко не каждый хостинг даст тебе такую возможность. Во-вторых, придется постоянно обновлять всю эту инфу, а такие частые соединения могут вызвать никому не нужные подозрения. Можно, конечно, попробовать поставить свой выделенный сервер, но, имхо, это не стоит тех денег. Хотя кто знает...

А вообще, проблему загруженности можно решить гораздо проще. Просто добавь проверку на timeout при соединениях. Если произошел timeout, то переходи к следующему серверу. В случае, когда все сервера перегружены, придется вывести ошибку с извинениями :).

Назад на стр. 028-068-2  Содержание  Вперед на стр. 028-068-4