elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Añadir limte a las descargas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Añadir limte a las descargas  (Leído 2,604 veces)
erikcatala

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Añadir limte a las descargas
« en: 3 Febrero 2014, 04:05 am »

Bueno pues me he bajado un Directory Lister en PHP y modificado un poco a mi gusto.

El problema es que quiero limitar las descaras a X Kb pero no se como hacerlo. He buscado por Internet y la mayoría es para un archivo especifico.

Así es como lo tengo ahora: http://getmoneyfuckbitches.uni.me/download.php?file=Downloads.rar

Esta subido a http://getmoneyfuckbitches.uni.me/


Si alguien me puede decir por donde buscar o echarme una mano se le agradecería :)


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Añadir limte a las descargas
« Respuesta #1 en: 3 Febrero 2014, 04:34 am »

puedes usar una salida (impresion) que imprima ej 1kb y haga un wait por x tiempo para regular la velocidad a base de cantidades conocidas y tiempos conocidos


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Añadir limte a las descargas
« Respuesta #2 en: 3 Febrero 2014, 04:46 am »

Citar
El problema es que quiero limitar las descaras a X Kb pero no se como hacerlo. He buscado por Internet y la mayoría es para un archivo especifico.

Que quieres decir con eso ?
  • ¿Que no se puedan subir archivos de mas de X kb?
  • ¿Que no se pueda descargar max de X kb de un archivo? (romper)
  • ¿Que cuando las descargas totales de un archivo suman X kb deje de estar disponible?

O como ? Explicate mas..

Saludos
En línea

erikcatala

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Re: Añadir limte a las descargas
« Respuesta #3 en: 3 Febrero 2014, 04:52 am »

Quiero limitar el ancho d banda, que se baje por ejemplo a 1Kb
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Añadir limte a las descargas
« Respuesta #4 en: 3 Febrero 2014, 04:55 am »

decídete! o limitas el ancho de banda a kb/s o cortas el archivo a una cantidad de kb específicos! XD pensé que era eso primero!
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
erikcatala

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Re: Añadir limte a las descargas
« Respuesta #5 en: 3 Febrero 2014, 12:27 pm »

Quiero limitar el ancho de banda para todos los archivos, perdón por la confusión :S
En línea

EFEX


Desconectado Desconectado

Mensajes: 1.171


"Dinero Facil"


Ver Perfil WWW
Re: Añadir limte a las descargas
« Respuesta #6 en: 3 Febrero 2014, 16:01 pm »

Yo creo que es mejor instalar y configurar mod_bandwidth(si utilizas apache..) que hacer un script en php.

http://www.cohprog.com/mod_bandwidth_config
En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Añadir limte a las descargas
« Respuesta #7 en: 3 Febrero 2014, 23:02 pm »

Coincido con @EFEX, que PHP haga esto es posible, pero cargaras mucho al servidor y los limites de tiempo de ejecución serian un problema.

Saludos
En línea

erikcatala

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Re: Añadir limte a las descargas
« Respuesta #8 en: 5 Febrero 2014, 03:45 am »

Entonces haré lo que dice @EFEX muchas gracias :)
En línea

el-brujo
ehn
***
Desconectado Desconectado

Mensajes: 21.590


La libertad no se suplica, se conquista


Ver Perfil WWW
Re: Añadir limte a las descargas
« Respuesta #9 en: 27 Febrero 2014, 16:54 pm »

Si quieres hacerlo vía el servidor web directamente, pues tienes que ser root o tener acceso directo al servidor, porque hay que instalar un módulo al apache:

Limitar ancho de banda en Apache
http://blog.elhacker.net/2013/02/limitar-ancho-de-banda-en-apache.html

Con PHP también se puede hacer, pero será más complicado:


Código
  1. $local_file = 'file.zip';
  2. $download_file = 'name.zip';
  3.  
  4. // set the download rate limit (=> 20,5 kb/s)
  5. $download_rate = 20.5;
  6. if(file_exists($local_file) && is_file($local_file))
  7. {
  8.    header('Cache-control: private');
  9.    header('Content-Type: application/octet-stream');
  10.    header('Content-Length: '.filesize($local_file));
  11.    header('Content-Disposition: filename='.$download_file);
  12.  
  13.    flush();
  14.    $file = fopen($local_file, "r");
  15.    while(!feof($file))
  16.    {
  17.        // send the current file part to the browser
  18.        print fread($file, round($download_rate * 1024));
  19.        // flush the content to the browser
  20.        flush();
  21.        // sleep one second
  22.        sleep(1);
  23.    }
  24.    fclose($file);}
  25. else {
  26.    die('Error: The file '.$local_file.' does not exist!');
  27. }


Código
  1.  
  2. <?php
  3. /* aqui el numero de kilobytes de descarga (ej. 10.20 Kb/s) */
  4. $download_rate = 10.20;
  5.  
  6. $download_file = 'download-file.zip';  
  7. $target_file = 'target-file.zip';
  8.  
  9. if(file_exists($download_file)){
  10.    /* headers */
  11.    header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
  12.    header('Cache-control: private');
  13.    header('Content-Type: application/octet-stream');
  14.    header('Content-Length: '.filesize($download_file));
  15.    header('Content-Disposition: filename='.$target_file);
  16.  
  17.    /* flush */
  18.    flush();
  19.  
  20.    /* abrir archivo */
  21.    $fh = @fopen($download_file, 'r');
  22.    while(!feof($fh)){
  23.        /* mandamos parte del archivo */
  24.        print fread($fh, round($download_rate * 1024));
  25.        /* flush del contenido al navegador */
  26.        flush();
  27.        /* sleep de 1 segundo */
  28.        sleep(1);
  29.    }
  30.    /* cerrar archivo */
  31.    @fclose($fh);
  32. }else{
  33.    die('Error: '.$download_file.' no existe!');
  34. }
  35. ?>
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
añadir reputación
Sugerencias y dudas sobre el Foro
chipbios 3 2,236 Último mensaje 19 Junio 2005, 00:28 am
por 4rm4ndo
añadir datos a txt web « 1 2 »
Programación Visual Basic
bautistasbr 15 4,782 Último mensaje 26 Junio 2006, 20:18 pm
por Hans el Topo
Añadir mas componentes « 1 2 3 »
Programación Visual Basic
bautistasbr 21 6,561 Último mensaje 24 Julio 2006, 16:00 pm
por _Sergi_
Añadir DLL a DLL
Ingeniería Inversa
llamamecomoquieras 1 2,531 Último mensaje 25 Noviembre 2008, 20:39 pm
por Shaddy
Anadir un contador de descargas a un script php listador de archivos.
PHP
Veloz46 5 2,886 Último mensaje 22 Noviembre 2013, 13:59 pm
por Veloz46
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines