#1 5. Juli 2007 Maximale Downloadgeschwindigkeit hi, hab ne frage zum thema downloadgeschwindigkeit: ich hab hier nen server. jetzt kommt ein user und will downloaden, aber ich moechte nicht dass er mit voller bandbreite ziehen darf. d.h. statt mit 300kb/s nur auf max 50kb/s. ist das mit php regelbar? oder apache? (windowsserver ggf. linux server) + Multi-Zitat Zitieren
#2 5. Juli 2007 AW: Maximale Downloadgeschwindigkeit Hoi, mit php geht sowas nur umständlich bis gar nicht. Für Apache2 gibts ein paar Module die sowas beherschen. [G]Apache bandwith ip[/G] Findet man Sachen wie mod_cband (dafür gibt es auch ein Debian Paket). Ansonsten mal lighttpd anschauen. (Wikipedia betreibt zum Teil seine upload/download mit lighttpd.) Zum Beispiel dürfte das [link] für dich interessant sein, da dort der Speed über php gesteuert werden kann. (Müsstest nur mehrfache Connections ausschließen) Gibt aber auch noch Module die andere Möglichkeiten bieten. Ob Windows oder Linux ist eigentlich egal, Hauptsache du bekommst die Module entsprechend compiliert. Linux bietet sich an, weil es unter den Bedingungen häufiger eingesetzt wird. greetz blackbone + Multi-Zitat Zitieren
#4 5. Juli 2007 AW: Maximale Downloadgeschwindigkeit siehe Anthony C Howe - Snert - Bork Bork Bork! - Firefox & Thunderbird Extension (Entwickler von mod_throttle) Sonst hätte ich das mit vorgeschlagen. xD greetz blackbone :] + Multi-Zitat Zitieren
#5 6. Juli 2007 AW: Maximale Downloadgeschwindigkeit PHP: <? php$limit = 5 ; // Hier gibt man ein, wie viel Kilobyte pro Sekunde max. geladen werden dürfen. $verzeichnis = "/www/htdocs/mamonede/downloads" ; // Downloadverzeichnis (ohne abschließenden "/") $rundeslimit = round ( $limit * 1024 ); // Kilobytewert in Byte umrechnen switch ( $_GET [ 'id' ]) { // die per ?id=X übergegebene ID wird der Datei zugeordnet case 0 : // die einmalige ID $file = "file1.zip" ; // die zu ladene Datei bei ID 0 break; // Die obigen 3 Zeilen können beliebig oft wiederholt werden (ID anpassen!) case 1 : $file = "datei2.rar" ; // die zu ladene Datei bei ID 1 break;case 2 : $file = "programm3.exe" ; // die zu ladene Datei bei ID 2 break; // und so weiter. Beliebig viele Downloads hinzufügbar } header ( "Cache-control: private" ); header ( "Content-type: $sendmime " ); header ( "Content-Length: " . filesize ( $verzeichnis . "/" . $file )); header ( "Content-Disposition: attachment; filename=" $file "" ); // Attachementheader senden flush (); $fd = fopen ( $verzeichnis . "/" . $file , "r" );while(! feof ( $fd )) {echo fread ( $fd , $rundeslimit ); flush (); sleep ( 1 );} fclose ( $fd ); // Die Speed-Sperre wird geschaltet ?> Die Downloadgeschwindigkeit liegt beim Anfang des Downloads etwa bei der doppelten Geschwindigkeit und wird erst langsam auf die gwünschte Geschwindigkeit gedrosselt. Quelle: MaMo Net » Forum » Webdesign & Programmieren » PHP: Downloadgeschwindigkeit begrenzen Nicht geprüft. MfG + Multi-Zitat Zitieren
#6 6. Juli 2007 AW: Maximale Downloadgeschwindigkeit Wobei du den switch Kram gar nicht brauchst. Reicht ja schon, dass du immer nach 1 MB oder 1 GB oder 10 MB oder 10 KB oder whatever 1 Sekunde wartest bevor du die nächste Zeile / das nächste Segment der Datei ausgibst... + Multi-Zitat Zitieren
#7 6. Juli 2007 AW: Maximale Downloadgeschwindigkeit @cydoc: und was passiert, wenn ich die datei ohne dein skript runterlade? + Multi-Zitat Zitieren
#8 6. Juli 2007 AW: Maximale Downloadgeschwindigkeit hehe... gut gemerkt... das müsste sich aber mit chmod (700??) bzw. mit ner htaccess richten lassen... + Multi-Zitat Zitieren
#9 7. Juli 2007 AW: Maximale Downloadgeschwindigkeit PHP: $file = "die datei" ; // Url zur Datei $throttle = 20 ; // Die Geschwindigkeit header ( "Content-Type: application/octet-stream" ); header ( "Content-Disposition: attachment; filename=\"die datei\"" ); header ( "Cache-Control: no-cache" ); header ( "Pragma: no-cache" ); header ( "Expires: 0" ); header ( "Content-Length: " .(string)( filesize ( $file ))); $fp = fopen ( $file , 'r' ); while(! feof ( $fp )) { $buffer = fread ( $fp , 1024 * $throttle ); sleep ( 1 ); print $buffer ; } fclose ( $fp ); header ( "Connection: close" ); so kann man übrigens auch einen kleinen schutz einbauen, um hotlinking zu verhindern! + Multi-Zitat Zitieren
#10 8. Juli 2007 AW: Maximale Downloadgeschwindigkeit 1. es ist nicht mein Script 2. es ist eine antwort auf die frage, nichts weiterdenkendes 3. dann lädst du sie mit fullspeed aber da die frage so konkret nicht war, war dieser lösungsansatz hilfreich für die frage. + Multi-Zitat Zitieren