PDA

Просмотр полной версии : Ограничение скачки на IP


DJLOVE
07.12.2004, 02:17
Есть ли скрипт или хз что, который ограничевает пользователя в подключениях (на каждый IP)?

Например чтобы скачивали файл не больше чем 3-конекта-на-IP или 1 вообще...

Как это можно реализовать?

quaker
08.12.2004, 01:19
во всех нормальных фтп серверах это должно быть в настройках реализовано

Jlamepok
08.12.2004, 09:48
сессиями... шифруй папку и потом спомощью db проверяй (все на самом деле просто, но что бы обьяснить надо много времени)

DJLOVE
08.12.2004, 12:52
quaker скачивается с http a не с ftp

Jlamepok бррр, сессиями... шифруй папку и потом спомощью db проверяй спасибо конечно но нифига непонятно (для меня покрайней мере)

Ghost
08.12.2004, 13:06
DJLOVE
Как вариант - делай в http-сервере перенаправление с нужного файла (exe, dll и проч.) на специальный скрипт (при помощи mod_rewrite в apache, например), который:
1. проверяет, запущен ли этот скрипт с этого ip уже - смотрит, записан ли этот ip где-нибудь, например, каком-то файле или БД (если да - конец скрипта)
2. записывает текущий ip в то самое место (файл или БД)
3. передает нужный файл
4. стирает из того самого места текущий ip.

qwebec
08.12.2004, 13:50
DJLOVE
а web сервер какой? apache?

DJLOVE
08.12.2004, 17:21
qwebec угумс, апачи и все причендалы :biggrin:

Ghost
08.12.2004, 17:27
DJLOVE
В принципе можно даже без перенаправления: размещаешь файло НЕ в web-пространтсве (т.е. не в папке, к которой можно обратится через http, а где вне корня web-сервера), а для скачки файла рисуешь свой скрипт, например, download.pl и вызывается он, например, так: download.pl?utilities/cd/burner/nero/6.6.0.3/setup.exe, а делает этот скрипт то, что я описал выше...

Fiery_Fenix
09.12.2004, 03:16
Ghost:
размещаешь файло НЕ в web-пространтсве
Это не обязательно, просто закинуть в ту папку где файлы .htaccess с параметрами deny from all.
А вообще я бы сделал скрипт который принимает в GET в виде параметра id файла (все остальные атрибуты хранятся в БД), затем добавляет/проверяет в спец. табличке запись вида (id, ip, count), если count больше заданого - 404/403, меньше - отдает Content Header и добавляет к count 1.

Jlamepok
09.12.2004, 10:16
DJLOVE Ну вот смотри...
есть папка у тя например ./www/download/musik/
вот ты ее никому не показываешь, а в ссылках, например генеришь в зависимости от сессии - например на 30 минутак ссылку типа http://yoursite.com/29sdfghlkj43987klhdsg97843/1.mp3, вся эта абракадабра - сессия юзверя которая выдаеться либа мд5 + юнитайм, либо sessionstart();.. - это раз

два есть в бд таблица например site_session - в ней колонка dwd_id - вот если он че-нить качает - туда вноситься например 1.mp3|2.mp3|3.mpeg, - после чего когда скрипт обновляеться - кум-нить другим - идет проверка на count(explode("|",$r['dwd_id'])); - вот так - если больше $max_dwd_num (=2), значит - выдать вместо замаскированной папки - мессагу ху*я и тот кто качает - подождет пока закачаеться первый файл, после только начнет качать фторой...

а вообще посмотри антилич

qwebec
09.12.2004, 17:38
DJLOVE
мне кажется решение в установке дополнительных модулей типа mod_limitipconn