Есть ли аналог Antileech Public v4

V1
На сайте с 30.04.2008
Offline
158
1849

Всем привет.

Поставил себе на сайт под хранения файлов скрипт Antileech Public v4. Все хорошо, но не давно обратил внимание, что файлы не до конца докачиваются. Доходит примерно до 2.7 Мв и закачка останавливается. Вообщем хочу найти альтернативу скрипту Antileech Public v4 или может быть кто то уже сталкивался с такой проблемой и подскажет что можно сделать. Спасибо.

Vit12J добавил 07.09.2008 в 05:30

Вообщем потестил по разному Antileech Public v4, по фтп и менеджерами закачек файл скачивается целиком, а если через браузеры то доходит до 2.7 Мб и закачка завершается, целиком не хочет.

Есть подозрение на файл download.php код:

<?php

/*
AntiLeech Public v4.1
Copyright ©2005-2006 AntileechPublic.Org. All Rights Reserved.
This file may not be redistributed in whole or significant part.
AntileechPublic is not FREE software.
http://www.antileechpublic.com
*/
error_reporting(E_ALL & ~E_NOTICE);
ignore_user_abort(true);
if (function_exists('set_time_limit') AND get_cfg_var('safe_mode') == 0)
{
@set_time_limit(0);
}
@ini_set('short_open_tag', 1);
@ini_set('zlib.output_compression', 'Off');
require './functions.php';
register_shutdown_function('bye_bye');
ReadConfig ('DEVINFO, MAIN, WHITELIST, BLACKLIST, REFLIST, EXTRA, LANGUAGE');
getlanguage();
include './language/lang-'.LANGUAGE.'.php';
CheckSettings ();
header ("Expires: Tue, 1 Jan 1980 00:00:00 GMT");
header ("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header ("Cache-Control: no-store, no-cache, must-revalidate");
header ("Cache-Control: post-check=0, pre-check=0", false);
header ("Pragma: no-cache");
header ("X-Powered-By: ".$MAIN['url']." (". unserialize(base64_decode($DEVINFO['name'])) . unserialize(base64_decode($DEVINFO['version'])) . ")");
$IP = GetIP();
$whitelisted = WhiteList($IP);
if (!$whitelisted && BlackList($IP)) {
download_error(''.$lang['banned'].'', $MAIN['url']);
exit();
}
if (!$whitelisted && !CheckReferer()) {
download_error(''.$lang['leecher'].'');
exit();
}

ConnectToDatabase ();
ClearTimeouted();

if ($MAIN["furl"] == "yes"){
$return = GetParams();
}elseif ($MAIN["furl"] == "no"){
$return = GetParams2();
}

if (sizeof($return) != 2) {
download_error(''.$lang['wquery'].'');
exit();
}
$session = $return[0];
if (!empty($MAIN['maxtotalthreadsday'])) {
$Query = "SELECT SUM(dailydownloaded) FROM ".$MAIN['db_table']."_dailydownloaded WHERE ipaddress = '".$IP."'";
$Res = mysql_query($Query);
list($total) = mysql_fetch_array($Res);
if ($total >= $MAIN['maxtotalthreadsday']) {
download_error(''.$lang['dlreach'].'');
exit();
}
}
if (!empty($MAIN['maxtotalthreads'])) {
$Query = "SELECT SUM(threads) AS `total` FROM ".$MAIN['db_table'];
$Res = mysql_query($Query);
list($total) = mysql_fetch_array($Res);
if ($total >= $MAIN['maxtotalthreads']) {
download_error(''.$lang['slhigh'].'');
exit();
}
}
if (!empty($MAIN['maxthreadspersession'])) {
$Query = "SELECT SUM(threads) FROM ".$MAIN['db_table']." WHERE ip = '".$IP."'";
$Result = mysql_query($Query);
if (mysql_num_rows($Result)) {
list($threads) = mysql_fetch_array($Result);
if ($threads >= $MAIN['maxthreadspersession']) {
download_error(''.$lang['alreadydl'].'', $MAIN['url']);
exit();
}
}
}
$Query = "SELECT * FROM ".$MAIN['db_table']." WHERE session = '".addslashes($session)."' AND ip = '".$IP."'";
$Result = mysql_query($Query);
if (!mysql_num_rows($Result)) {
download_error(''.$lang['wsession'].'', $MAIN['url']);
exit();
}
$info = mysql_fetch_assoc($Result);
$Query = "UPDATE ".$MAIN['db_table']." SET threads = threads + 1 WHERE session = '".addslashes($session)."'";
$Result = mysql_query($Query);
$is_increased = true;
$Query = "UPDATE ".$MAIN['db_table']."_dailydownloaded SET dailydownloaded = dailydownloaded + 1 WHERE ipaddress = '".$IP."'";
$Result = mysql_query($Query);
$Query = "UPDATE ".$MAIN['db_table']."_totaldl SET totaldl = totaldl + 1 WHERE ip = '".$IP."'";
$Result = mysql_query($Query);

$fname = str_replace(' ','',$info['file']);
$fullpath = $MAIN['filepath'].$info['category'].'/'.$info['file'];
$size = filesize($fullpath);
$fp = fopen($fullpath, 'r');
header ('Accept-Ranges: bytes');
header ('Content-Type: application/force-download');
header ('Connection: close');
header ('Content-Disposition: attachment; filename='. $fname);
header ('Content-Transfer-Encoding: binary');
if (function_exists('getallheaders')) {
$header = getallheaders();
}else{
$header = emu_getallheaders();
}
if (isset($header['Range'])) {
header('HTTP/1.0 206 Partial Content');
$range = $header['Range'];
$r = explode('=', $range);
list($from) = explode('-', $r[1]);
$length = $size - $from;
$s_start = $size - $length;
$s_end = $size - 1;
fseek($fp, $s_start);
header ('Content-Range: bytes '.$s_start.'-'.$s_end.'/'.$size);
header ('Content-Length: '. $length);
} else {
header('Content-Length: '. $size);
}
ob_implicit_flush(true);
if (empty($MAIN['maxkbps'])) {
while (!feof($fp)) {
print (fread($fp, 10240));
if (connection_aborted()) {
break;
}
}
} else {
$koef = 10;
$readlen = intval(1024 * $MAIN['maxkbps'] / $koef);
$waittime = intval(1000000 / $koef);
while (!feof($fp)) {
if (connection_aborted()) {
break;
}
print (fread($fp, $readlen));
usleep($waittime);
}
}
fclose($fp);
DisconnectDatabase ();
?>

Подскажите кто разбирается, что нужно подправить.

Еще вопрос, если я буду на сайт(dle двиг) ложить файлы, будет меньше нагрузка на сервер чем Antileech Public ?

V1
На сайте с 30.04.2008
Offline
158
#1

Вообщем проблемой оказался хостер на котором размещен скрипт. Там стоит ограничение на время работы скриптов 30 секунд (100 секунд в крайнем случае, если в основном работает одна функция). Проверял файл качается ровно 100 секунд и потом отрубает закачку. Посоветовали отдавать файлы напрямую, не через php скрипт, а доступ к ним контролировать с помощью .htaccess файла и скрипта, который бы дописывал в него правила. Но так как не силен в написании скриптов незнаю что и делать. Менять хостера не хочется. Может быть кто нибудь знает какой нибудь скрипт для файлового архива, что бы не использовал выше написанные функции. Хотелось бы что бы можно было ставить ограничение на скорость загрузки файлов и ввод капчи, других функций не нужно. Кстати менеджерами закачек файлы скачиваются целиком а вот через браузер только первые 100 секунд. Если кто подскажет решение проблемы буду благодарен. Спасибо.

J
На сайте с 30.09.2008
Offline
0
#2

Если позволите, я здесь задам вопрос. Он, конечно, больше подходит в раздел «Для новичков», но не хочется плодить сущности, раз уже есть подходящая тема.

Предыдущий оратор говорил: «Поставил себе... Все хорошо...» Так вот мне не удаётся его поставить, точнее поставить-то я его поставил, но вот функционировать Antileech Public v4.1 категорически отказывается — будто его там нет вообще.

Выбрал его, потому что он отечественного производства — по-русски (понятные подсказки), да и в ПС попадается довольно часто — вроде не левый. И что немаловажно — простейшая установка: залил, запустил setup, замаскировался и всё.

Правда до «всё» я с запинкой добрался — при запуске keygen'а получил сообщение:

Fatal error: Call to undefined function gzinflate()

in /home/***/download/keygen.php(1) : eval()'d code on line 1
Что там творится в этой строке 1 непонятно — я и так не шибко граммотный в этих делах, а тут ещё и весь код зашифрован?..

Дальше в админке всё, что просили, настроил (даже кое-какие записи в таблицах SQL появились!). Потом захожу в раздел, где на мою папку для скачивания содаются хитровыгнутые ссылки — точно, все файлы найдены (пути, вроде, правильные прописал). Но когда по предложению нажать на имя файла для проверки, кликаю по первому попавшемуся — ничего не происходит, точнее, нарываюсь на ошибку 404.

Были у меня сомнения в скрипте, когда перед этим ставил антилич от капитана Немо — ну, мало ли может что-то там не подходит (конечный результат был аналогичный). Теперь-то уже точно понятно — скрипты тут ни при чём — это я не имею понятия о чём-то элементарном...

Той информации, что я предоставил, явно недостаточно для определения причины, но может её можно выловить на стадии, типа: «проверь предохранитель, вставь штепсель в розетку...»?

J
На сайте с 30.09.2008
Offline
0
#3

А ведь действительно вопрос-то был на уровне «штепселя»:

  • ошибка с inflate исправляется подключением библиотеки zlib;
  • добавление подкаталогов устраняет остальные недоразумения...

Странно, но почему же было такое ватное молчание, неужто никто не знал про такую элементарную настройку php? – ни в жисть не поверю. Быть может просто это такой гнилой скрипт, что с ним и связываться не стоит?..

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий