Downloadgeschwindigkeit künstlich verringern


Wer schon mal bei chip.de was geladen hat kennt das: Man kann ohne Extrazahlung nur mit 7 kb/s herunterladen. Wie man eine solche Beschränkung selber codet, ist hier erklärt.

Gründe für so eine Beschränkung gibt es viele. Einerseits kann man damit erheblich die Auslastung des entsprechenden Servers verringern und Bandbreite sparen. Andererseits kann man, wie es chip.de tut, Benutzern einen Highspeed-Download ohne Begrenzung mit Bezahlung und einen Lowspeed-Download für Nicht-Zahler einrichten.

Und dafür sorgen nur einige Zeilen PHP-Code:
PHP-Datei:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php

$file 
"happy.zip"// Datei zum Herunterladen
$speed 7// Downloadrate, hier 7 kb/s

if(file_exists($file) && is_file($file)) { // Prüfung auf Existenz der Datei
    
header("Cache-control: private"); // Überlässt die Kontrolle der Dateiübertragung dem Script
    
header("Content-Type: application/octet-stream"); // Setzt den Header zum Download
    
header("Content-Length: ".filesize($file)); // Gibt die Dateigröße an
    
header("Content-Disposition: filename=$file"); // Definiert, wo die Datei liegt.

    
flush(); // Leert den Zwischenspeicher

    
$fd fopen($file"r"); // Öffnet die Datei zum Lesen
    
while(!feof($fd)) {
        echo 
fread($fdround($speed*1024)); // Liest und sendet exakt soviel KB, wie angegeben
        
flush(); // Leert wieder den Zwischenspeicher
        
sleep(1); // Setzt das Script für 1 Sekunde aus
    
}
    
fclose ($fd);
}
?>


Da das Script jeweils nur 7 kb überträgt und anschließend für eine Sekunde ausgesetzt wird, erhält man die Datenübertragungsgeschwindigkeit von 7 kb/s.
Man darf jedoch nicht mit Ordnern arbeiten, sodass diese Datei im gleichen Verzeichnis wie die herunterzuladene Datei liegen muss.Geschrieben von Phil Marx am 26.04.2005 (9178x gelesen)
Diese News stammt von der Seite http://www.yubb.de
Sie ist unter http://www.yubb.de/artikel529.html direkt aufrufbar.

Jegliche Reproduktion dieser Seite oder ihrer Inhalte ist strengstens untersagt.