Datei-Download beschränken (Limit)

Apache, Lighttpd, nginx, Cherokee
x2on
Posts: 5
Joined: 2007-10-08 10:11

Datei-Download beschränken (Limit)

Post by x2on » 2008-03-27 15:46

Hi Leute,

ich würde gerne auf meine VServer ein paar größere Downloads anbieten!
Nur sollen diese ab einem gewissen Limit nicht mehr möglich sein, da ich begrenzten Traffic habe.
Gibt es irgendeine einfach Lösung dafür? Hab bis jetzt nur sehr komplizierte Sachen dafür gefunden...!

Vielen Dank

Grüße x2on

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Datei-Download beschränken (Limit)

Post by Roger Wilco » 2008-03-27 16:23

mod_cband für den Apache httpd wäre eine Möglichkeit.

freddy36
RSAC
Posts: 277
Joined: 2008-03-20 17:31

Re: Datei-Download beschränken (Limit)

Post by freddy36 » 2008-03-27 16:33

Am einfachsten wird es sein ein PHP/CGI Script dazu zu verwenden um den Traffic zu zählen. Problem ist das du je nach Download Größe lange Script Laufzeiten hast. So ist es aber recht genau.
Alternativ Logs auswerten, das ist aber nicht unbedingt genau (z.B. bei abgebrochenen Downloads oder wenn jemand mit mehreren Verbindungen gleichzeitig eine Datei läd.
Oder ein Script was regelmäßig prüft wie viel Traffic noch über ist und die Downloads dementsprechend limitiert (Anhand der vom Provider gemessenen Werte). Das ist sicherlich am genausten.

x2on
Posts: 5
Joined: 2007-10-08 10:11

Re: Datei-Download beschränken (Limit)

Post by x2on » 2008-03-27 18:29

Also das mit dem PHP/CGI Skript hab ich mir auch als aller erstes gedacht, nur noch nicht wirklich was gutes gefunden! Kennt vielleicht wer ein gutes Skript, dass nicht zu kompliziert ist?

Das mit dem regelmäßig prüfen ist denk ich problematisch, wenn plötzlich viele Leute etwas großes herunterladen, ist der Traffic recht schnell weg und das Script hat noch nicht mal nachgefragt.

Zu mod_cband: Ich hab das so verstanden das ich parallele Abfragen oder den gesamten Traffic einschränken kann und nicht einzelne Downloads? Oder bin ich da falsch informiert?

Danke auf jeden Fall schon mal für die Tipps...

x2on
Posts: 5
Joined: 2007-10-08 10:11

Re: Datei-Download beschränken (Limit)

Post by x2on » 2008-03-28 17:10

Leider habe ich kein PHP-Skript gefunden, daher dachte ich mir könnte ich es in ein Anti-Leech Skript von mir einbauen, oder?
Müsste doch nur die Anzahl der Aufrufe der Php datei zählen (soll ja nur vor groben Missbruach schützen)

Code: Select all

<?php
$domainwww="www.excample.com";
$domain="excample.com"";
$folder="download";
$leech="leech.html";
$error="404.html";
$file="file.zip";
$referer=getenv("HTTP_REFERER");
list($remove,$temp)=split('//',$referer,2);
list($home,$temp)=split('/',$temp,2);
if ($home!=$domainwww AND $home!=$domain)
   {
   readfile($leech);
   exit;
   }
else
   {
   $fp=@fopen("http://www.excample.com/".$folder."/".$file,"r");
   if($fp)
      {
        $type="application/x-zip-compressed";
       Header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
       Header("Content-Description: File Transfer");
       Header("Content-Type: $type");
      Header("Accept-Ranges: bytes");
       Header("Content-Disposition: ; attachment; Filename=$file");
      while (!feof($fp))
         {
         echo(fgets($fp, 4096));
             }
      fclose ($fp);
      }
   else
      {
      readfile($error);
      exit;
      }
   }
?>


Jemand ne Idee wie ich das da rein kriege?
Bin nicht so der PHP-Könner...

freddy36
RSAC
Posts: 277
Joined: 2008-03-20 17:31

Re: Datei-Download beschränken (Limit)

Post by freddy36 » 2008-03-28 17:40

Für genauere Angaben die übetragenen/ausgegebenen Bytes zählen, mit connection_aborted(), etc. prüfen ob die Verbindung abgebrochen wurde.

cirox
Posts: 212
Joined: 2006-05-08 23:20
Location: Berlin

Re: Datei-Download beschränken (Limit)

Post by cirox » 2008-04-05 22:07

Wozu das Rad neu erfinden? mod_cband ist doch schon genannt worden. Dafür ist es da ....