<?php/*Защита файлов от скачивания по
ссылкам с чужих сайтов ссылка на
скачивание выглядит так:http://
example.com/antileech.php?down=4 <--
номер файлаили http://example.com/
antileech.php?down=filename <-- имя
файла*/// Настройки$antiurl =
"htmlweb.ru"; // Разрешённый сайт
(referer).$antidir = $_SERVER
['DOCUMENT_ROOT']."/download/"; // Папка
где находятся защищённые от скачивания
файлы$logfile = "log.htm"; // Файл
протокола (должен быть html или htm и
обязательно CHMOD 777.if (isset($logfile))
{if (!file_exists($logfile)) die("Файл
<font color='red'><b>$logfile</b></font>
не найден!");if (!is_writable($logfile))
die("Для файла<font color='red'><b>
$logfile</b></font> нужно зделать CHMOD
777!");if ($_SERVER['HTTP_REFERER'] ==
"")$cnr_data = "[не известно]"; else
$cnr_data = "<a href="" . $_SERVER
['HTTP_REFERER'] . "">" . $_SERVER
['HTTP_REFERER'] . "</a>";$cnr_data =
"<font color="green">".$_SERVER
['REMOTE_ADDR']."</font> HOST <font
color="red">".gethostbyaddr($_SERVER
['REMOTE_ADDR'])."</font> visited on
".date("l d F H:i:s")." ссылка с ".
$cnr_data."<br>";@file_put_contents
($_SERVER['DOCUMENT_ROOT'].$logfile,
$cnr_data, FILE_APPEND);}// Проверка
реферераif (!stristr($_SERVER
["HTTP_REFERER"], $antiurl) or !isset
($_SERVER["HTTP_REFERER"])) die('<h1>Файл
по указанной ссылке не доступен!</h1>');if
(is_numeric($_GET["down"])){// Здесь идут
файлы для скачивания пономерам if ($_GET
["down"] == 1) $filename = "test1.rar";
elseif ($_GET["down"] == 2) $filename =
"test2.rar"; elseif ($_GET["down"] == 3)
$filename = "test3.rar";}else $filename =
$_GET["down"];$path = $antidir .
$filename; // Полная ссылка на файл//
Проверка файла есть он или нетif (!
file_exists($path)){ header("HTTP/1.0 404
Not Found"); die("Файл '$filename' не
существует!");}$ftime = date("D, d M Y
H:i:s T", filemtime($path));// Проверкаif
(strstr($_SERVER["HTTP_REFERER"],
$antiurl)) { if (isset($_GET['down']) &&
isset($filename)) { $fsize = filesize
($path); $ftime = date("D, d M Y H:i:s
T", filemtime($path)); $fd = @fopen
($path, "rb"); if (!$fd){header
("HTTP/1.0 403 Forbidden");exit; } if
($HTTP_SERVER_VARS["HTTP_RANGE"]) { //
докачка $range = $HTTP_SERVER_VARS
["HTTP_RANGE"]; $range = str_replace
("bytes=", "", $range); $range =
str_replace("-", "", $range); if ($range)
{fseek($fd, $range);} } $content = fread
($fd, filesize($path)); fclose($fd); if
($range) header("HTTP/1.1 206 Partial
Content"); else header("HTTP/1.1 200
OK"); header("Content-Disposition:
attachment; filename=" . basename($path));
header("Last-Modified: $ftime"); header
("Accept-Ranges: bytes"); header("Content-
Length: ".($fsize-$range)); header
("Content-Range: bytes $range-".($fsize
-1)."/".$fsize); header("Content-type:
application/octet-stream"); print
$content; exit;} else die
("Недействительный файл.");}?>