Limiter la bande passante !

Signaler
Messages postés
12
Date d'inscription
lundi 15 septembre 2003
Statut
Membre
Dernière intervention
5 décembre 2004
-
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
-
Bonjour,

Je cherche un script qui permettrait de stopper l'accès a un certain type de fichiers ( fichiers .rar) apres tant de Mo de bande passante utilisée par jour....

En fait j'ai un site ( www.lmdmf.net ) qui propose des téléchargements, et des pompeurs sans scrupules prennent toute la bande apssante ( un tiers des 40 Go en trois jours !), donc j'aimerais limiter l'accès à ces fichiers ( fichiers.rar) en le stoppant complètement après un certain nombre de Mo ( de Go) par jour ..

Est-ce que c possible ? Est-ce qu'une ame bienveillante peut m'expliquer comment faire ?

MERCI !

15 réponses

Messages postés
282
Date d'inscription
vendredi 16 mai 2003
Statut
Membre
Dernière intervention
19 juillet 2006

tu peu limiter le nbre de ficher ke kelkun peu telecharger par jour..; pour cela il crée un compte et il doit etre identifié pour telecharger...
aau bout de X fichier, tu lui refuse le telechargement pour la journée (tu apour cela 1 compteur dans 1 fichier ou 1 BDD)
car limiter au nbre de Mo (ou Go c'est pareil..) me semble impossible en PHP (du moins amaconnaissance!!!)
Que la Force soit avec toi, Jeune Padawan!!!
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut ;-)

Pourquoi ne pas utiliser des liens de type "telechargement.php?id_fichier=x" ensuite sur ta page telechargement.php en fonction de l'id du fichier tu fais un téléchargement forcé via la fonction header() . Tu prends la taille du fichier que tu multiplies par le nombre de téléchargements déjà effectués+1. Si le total est supérieur à X Go et bien tu n'appliques pas le téléchargement forcé et tu rediriges vers une autre page.

Autre solution : repérer les adresses IP des pompeurs et les bloquer dans un htaccess :

Deny From ip1,ip2

a ++
http://www.vulgarisation-informatique.com : entraide, dépannage et vulgarisation informatique
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Ensuite si tu veux pour décourager les pompeurs tu utilises un mod_bandwith d'apache qui permet de gérer en fonction de la taille des fichiers leur vitesse possible de téléchargement. En la mettant à 1 Ko/s, tu vas décourager les pompeurs, ensuite tu remttras les valeurs normales pour tout le monde. Consulte aussi les docs d'apache, il est surement possible d'attribuer des quotas en fonction des fichiers via les fichiers htaccess.

a ++

http://www.vulgarisation-informatique.com : entraide, dépannage et vulgarisation informatique
Messages postés
12
Date d'inscription
lundi 15 septembre 2003
Statut
Membre
Dernière intervention
5 décembre 2004

L'idée de limiter a X téléchargement par jour me parait etre la meilleure, la question est comment ?

Le principe de mon portail est que tous les téléchargements passent par un header qui est redirigé depuis la page singlefile.php. mon idée était de mettre un système de cookies sur cette page , valides 24h, qui redirigerait vers une autre page, au bout de X dl par jour. simplement, je ne sais pas du tout programmer les cookies....

Sinon l'idée de faire une variable avec le nombre de Mo et de soustraire la taille du fichier, c bien trop compliqué parce qu'il y a environ 450 fichiers !
Messages postés
12
Date d'inscription
lundi 15 septembre 2003
Statut
Membre
Dernière intervention
5 décembre 2004

L'idée de limiter a X téléchargement par jour me parait etre la meilleure, la question est comment ?

Le principe de mon portail est que tous les téléchargements passent par un header qui est redirigé depuis la page singlefile.php. mon idée était de mettre un système de cookies sur cette page , valides 24h, qui redirigerait vers une autre page, au bout de X dl par jour. simplement, je ne sais pas du tout programmer les cookies....

Sinon l'idée de faire une variable avec le nombre de Mo et de soustraire la taille du fichier, c bien trop compliqué parce qu'il y a environ 450 fichiers !
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
"Sinon l'idée de faire une variable avec le nombre de Mo et de soustraire la taille du fichier, c bien trop compliqué parce qu'il y a environ 450 fichiers !"

Non justement, si ton système est du type

singlefile.php?file=x comme tu nous l'as annoncé, pour chaque x tu as une valeur dans ta base de données qui correspond au fichier ou tu appeles ta page singlefile.php?file=monfichier.zip et dans ce cas tu télécharges dans un dossier secret le fichier nommé "monfichier.zip" ?

dans les deux cas :

tu récupères le nom de ton fichier et sa taille (filesize('non_du_fichier'))

Ensuites tu places un cookie sur le pc client (il faut que le mec active les cookies, dans le cas contraire si les cookies sont désactivés tu refuses le téléchargement du fichier.

Pour les cookies c'est simple, cherches sur ce site, tu trouveras plein de tutoriels sur les cookies.

a ++

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique
Messages postés
12
Date d'inscription
lundi 15 septembre 2003
Statut
Membre
Dernière intervention
5 décembre 2004

Oui mais si je fais cette technique g plutot a faire une variable qui détermine le nombre de Go alloués, et je soustrais la taille a chaque fois... le problème est : comment on remet a la valeur initiale au bout de 24h ?

En fait le mieux serait de mettre les deux : pas plus de tant de téléchargements par jour pour un user ( avec le cookie), et stop pour tout le monde si le nombre de Go pour la journée est dépassé ... c'est pas mal, nan ?
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Bah pour ça tu ne peux que recourir à la base de données, un champ "fichier", un autre champ "nb_telechargements" qui contiendra le nombre de déléchargements par jour pour chaque fichier. Pour remettre à zéro la base de données tous les jours, tu peux utiliser le site webcron.org qui appelera un script qui fera un "DELETE * FROM ta_table" tous les soirs à minuit.

Ensuite pour chaque user le cookie est une bonne solution si tu contrôles que les visiteurs doivent les accepter pour télécharger un fichier (par exemple tu places un cookie sur une page A, si sur la page B le cookie n'est pas présent tu refuses le téléchargement)

a ++

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique
Messages postés
12
Date d'inscription
lundi 15 septembre 2003
Statut
Membre
Dernière intervention
5 décembre 2004

Ouais en fait faudrait que je m'y plonge vraiment... je suis presque débutat en php...

Mais bon, g compris le principe, merci beaucoup, maintenant je vais demander a des amis qui se débrouillent en php d'essayer de faire le script ( co admins du site :) )
Messages postés
282
Date d'inscription
vendredi 16 mai 2003
Statut
Membre
Dernière intervention
19 juillet 2006

t pas obligé d'avoir recours a un cron... il suffit , lors de la connexion d'un user, de vérifier la date du jour et celle dans la BDD: si c la meme alor le gars est deja venu et tu remet pas les compteur a 0,dans l'autre cas oui!
cette date est a ajouter lors d'un telechargement. ensuite tu peu avoir 1 champ qui s'incrémente a chak telechargement de cet user si tu veux limiter le nombre de telechargement par jour (ou alor tu ajoute le poids du fichier dans ce champ si tu veu limiter le poids téléchargé chak jour)
A toi de voir les possibilités son multiples
Que la Force soit avec toi, Jeune Padawan!!!
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
"si c la meme alor le gars est deja venu et tu remet pas les compteur a 0,dans l'autre cas oui!"

Redondant tout ça, c'est plus gourmand à traîter de plus, tandis qu'un simple "SELECT COUT(*) FROM ta_table WHERE IP='xx.xx.xxx.xx'" est beaucoup plus rapide pour MySQL et en codage php ;-)

mais se passer du cron est une idée intéressante :-)

a ++

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique
Messages postés
282
Date d'inscription
vendredi 16 mai 2003
Statut
Membre
Dernière intervention
19 juillet 2006

le fait de se baser sur l'IP permttrait a certains de tout simplement se déconnecter/reconnecter pour pouvoir a nouveau téléchargé!!! alors qu'en se basant sur la session (donc sur le couple login/pass de la personne), ya pas ce risk
Que la Force soit avec toi, Jeune Padawan!!!
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
"le fait de se baser sur l'IP permttrait a certains de tout simplement se déconnecter/reconnecter pour pouvoir a nouveau téléchargé!!!"

Hum les IP dynamiques sont en effet encore présentes, mais bon tu n'auras jamais une protection fiable à 100 %, pour le couple login/pass tu te réinscris avec un login+pass différent et hop, ça saute aussi ^^

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique
Messages postés
12
Date d'inscription
lundi 15 septembre 2003
Statut
Membre
Dernière intervention
5 décembre 2004

Ouais mais ya pas de con capable de faire ca 15 fois dans la mm journée....
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
T'es sûr ? lol

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique