Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Nur ein Download pro IP? (https://www.delphipraxis.net/51977-nur-ein-download-pro-ip.html)

Master_RC 22. Aug 2005 00:46


Nur ein Download pro IP?
 
hi leutz!

Ich suche einen Weg, auf meiner Homepage es so zumachen, dass eine IP gleichzeitig nur 1 (oder eben X) Downloads gleichzeitig haben kann...
hab natürlich nix gefunden :stupid:

Jede nutzbare Antwort bekommt ein 50 Meter WLAN-Kabel! :D

Luckie 22. Aug 2005 00:53

Re: Nur ein Download pro IP?
 
Das wird wohl nur über SessionIDs gehen, denn irgendwie musst du ja die Besucher eindeutig unterscheiden können.

Master_RC 22. Aug 2005 02:44

Re: Nur ein Download pro IP?
 
Mit Theorien komm ich immer weit - außer ich muss es umsetzen :stupid:

nunja, soweit bin ich auch schon gekommen, nur wie sieht das dann aus?

Pr0g 22. Aug 2005 02:49

Re: Nur ein Download pro IP?
 
Das mit dem Zähler für gleichzeitige Download wird schwer per Browser (und bspw. PHP), da du nur mitbekommst, wenn der User auf einen Link klickt, aber nicht weißt, wann er den Download beendet. Da müsstest du dir wohl nen eigenen Downloadclient schreiben. In diesem kannst du es dann entweder so machen, dass er sich nur einmal starten lässt und im Programm die Download zählen (denke ich ist der einfachste weg), oder du speicherst in einer Tabelle auf dem Server die Ip, oder eine eindeutige Identifikationsnummer (oder beides) und speicherst die Anzahl der geöffneten Downloads.

Master_RC 22. Aug 2005 03:03

Re: Nur ein Download pro IP?
 
Also es geht auch ohne Client, ein Beispiel wäre:
www.dlh.net => Patches-Abteilung

und dann bei irgendeinem patch der unterste Mirror, der will auch nur 1 DL pro IP. wenn man noch nen startet, dann eben ein hinweis...

Olli 22. Aug 2005 03:50

Re: Nur ein Download pro IP?
 
Zitat:

Zitat von Master_RC
und dann bei irgendeinem patch der unterste Mirror, der will auch nur 1 DL pro IP. wenn man noch nen startet, dann eben ein hinweis...

:gruebel: ... pro IP ist eine äußerst dumme Sache. Ich denke nur an Proxies ... abgesehen von Zwangsproxies diverser ISPs, gibt es genügend Firmen wo der Zugang nur über einen Proxy läuft. Wenn dann Mitarbeiter Schulz schonmal runtergeladen hat, hat sich's für den Chef der Firma erledigt - er kann es nicht mehr runterladen.

Außerdem solltest du dir die Sinnfrage stellen, nachdem du dir bewußt gemacht hast, daß sich die IP mit jeder Einwahl ändern könnte.

Viel Erfolg dennoch dabei ... (ich pflichte übrigens Pr0g bei!)

Master_RC 22. Aug 2005 04:05

Re: Nur ein Download pro IP?
 
nenene.... nicht nur 1 DL, sondern nur 1 DL gleichzeitig

also eiegtnlich nur, um zu viel traffic auf einen schlag zu verhindern :)

faux 22. Aug 2005 07:32

Re: Nur ein Download pro IP?
 
Hast du einen eigenen Server oder einen Fremdhoster? Denn bei einem Eigenen Server kannst du glaube ich sogar einstelle, wieviele COnnetions per IP zugelassen werden sollen.

mirko2000 22. Aug 2005 10:01

Re: Nur ein Download pro IP?
 
Ich wüsste nur die Möglichkeit auf einem FTP-Server eine Einstellung zu setzen, dass zu der einen IP-Adresse nur eine Verbindung gleichzeitig möglich sein soll. Vielleicht gibt es das Ganze auch im Web-Server, kann ich aber jetzt nicht sagen. Ich weiß nur, dass es so eine Einstellung bei diversen FTP-Servern gibt.

Olli 22. Aug 2005 10:21

Re: Nur ein Download pro IP?
 
Zitat:

Zitat von Master_RC
nenene.... nicht nur 1 DL, sondern nur 1 DL gleichzeitig

also eiegtnlich nur, um zu viel traffic auf einen schlag zu verhindern :)

Okay, dafür gibt es zB für den Apache diverse Module, die das Load Balancing erlauben.

Eine andere Frage: Ist der Download so groß und erwartest du soviele Downloads, daß sich der Aufwand lohnt? Oder hast du Angst, daß dein Server gleich bei geringer Mehrlast zusammenbricht? :zwinker:

faux 22. Aug 2005 10:21

Re: Nur ein Download pro IP?
 
Zitat:

Zitat von mirko2000
Ich wüsste nur die Möglichkeit auf einem FTP-Server eine Einstellung zu setzen, dass zu der einen IP-Adresse nur eine Verbindung gleichzeitig möglich sein soll. Vielleicht gibt es das Ganze auch im Web-Server, kann ich aber jetzt nicht sagen. Ich weiß nur, dass es so eine Einstellung bei diversen FTP-Servern gibt.

Ja, genau so habe ich das gemeint...

Delphi-Freak 22. Aug 2005 10:46

Re: Nur ein Download pro IP?
 
Naja ich würde das so angehen:
Alle Downloads über ein PHP-Script, das am Anfang die IP in eine SQL-Tabelle speichert, dann über z.B. readfile() die Datei ausgibt und nun zum Schluss den Eintrag aus der SQL-Tabelle wieder löscht.
Ganz am Anfang musst du allerdings noch abfragen, ob die IP schon x-mal in der Tabelle ist und dann z.B. via die() eine Fehlermeldung ausgeben.
Zusätzlich wäre es noch gut, wenn du einstellst, dass das PHP-Script nicht abgebrochen wird, wenn der Client die Verbindung abbricht (gibts glaube ich in den INIs), bzw. könntest du noch ausprobieren, ob beim Abbrechen durch den Client noch eine Funkion ausgeführt wird, die über register_shutdown_function() eingetragen wurde.
Edit: Eine andere Möglichkeit wäre, eine Zeitbegrenzung zu machen, also die IP nach z.B. einer halben Stunde aus der Tabelle rauszuschmeißen, fallst das mit dem austragen nicht ganz funktioniert.

LG, Gerhard

faux 22. Aug 2005 11:10

Re: Nur ein Download pro IP?
 
Zitat:

Zitat von Delphi-Freak
Eine andere Möglichkeit wäre, eine Zeitbegrenzung zu machen, also die IP nach z.B. einer halben Stunde aus der Tabelle rauszuschmeißen, fallst das mit dem austragen nicht ganz funktioniert.

Ich würde eher sagen, dass nach einer halben Stunde die IP trotzdem zugelassen wird, auch wenn sie schon drinnen steht. So wie du das geschriben hast, würde das Skript lange zum starten brauchen, wenn viele IPs abgebrochen haben (nur theoretisch)...

Delphi-Freak 22. Aug 2005 11:28

Re: Nur ein Download pro IP?
 
Wielange braucht es denn, um einen Eintrag aus der SQL-Tabelle zu entfernen. Das lässt sich ja eigentlich mit einem einzigen Query machen. Beim Eintragen speichert man den aktuellen UNIX-Timestamp hinein (als Int oder so ähnlich) und dann das Query:
Code:
mysql_query("DELETE FROM ips WHERE time<".(time() - 1800));
lg

Master_RC 22. Aug 2005 12:54

Re: Nur ein Download pro IP?
 
ich hab bei funpic.de

also heißt dat, dass es nicht geht :(

naja, es wäre ja nur ein kleiner "gag" gewesen, denn ich werd wahrscheinlich bald mal was größeres hochladen, dass alle möglichen dann haben wollen, und ich möchte funpic nicht drauf aufmerksam machen :o

Pr0g 22. Aug 2005 13:14

Re: Nur ein Download pro IP?
 
Wenn es alle Möglichen Leute haben wollen, dann wirds doch eh jeder meist nur einmal runterladen und dein Script wäre recht wirklungslos. Oder warum sollte man sich etwas zweimal gleichezeitig runterladen :lol:

Sonst könntest du dich noch bei einer Reihe anderer Hoster anmelden und die Datei dort lagern. Diese kannst du dann als Mirror angeben.

faux 22. Aug 2005 13:26

Re: Nur ein Download pro IP?
 
Zitat:

Zitat von Pr0g
Wenn es alle Möglichen Leute haben wollen, dann wirds doch eh jeder meist nur einmal runterladen und dein Script wäre recht wirklungslos. Oder warum sollte man sich etwas zweimal gleichezeitig runterladen :lol:

Er meint gleichzeitig also mit Downloadmanager oder so.

Zitat:

Zitat von Master_RC
naja, es wäre ja nur ein kleiner "gag" gewesen, denn ich werd wahrscheinlich bald mal was größeres hochladen, dass alle möglichen dann haben wollen, und ich möchte funpic nicht drauf aufmerksam machen :o

Wie willst du was größeres auf funpic laden als 1,1MB? Und worauf willst du die nicht aufmerksam machen?
btw: Es kann dir doch der Traffic von funpic egal sein, oder?

Pr0g 22. Aug 2005 13:57

Re: Nur ein Download pro IP?
 
Zitat:

Zitat von faux
Er meint gleichzeitig also mit Downloadmanager oder so.

Ja, aber sagt nicht, dass die Datei von allen User nur immer einmal heruntergeladen werden kann. Also dass User B warten muss bis User A fertig ist, sondern dass User A die Datei nicht mehrmals gleichzeitig herunterladen kann und eigentlich läd man eine Datei doch nur einmal herunter.

Master_RC 22. Aug 2005 14:39

Re: Nur ein Download pro IP?
 
nene, ich mein nicht, pro datei eine IP, sondern überhaupt darf eine IP nur einen DL zu eine rzeit habn!

also man darf mit der selben IP (oder irgendwas) zwar Datei1 oder Datei2 laden, aber nicht eide gleichzeitig :D

glaubnix 22. Aug 2005 15:49

Re: Nur ein Download pro IP?
 
Hallo Master_RC!

Zitat:

ich mein nicht, pro datei eine IP, sondern überhaupt darf eine IP nur einen DL zu eine rzeit habn!
Wozu soll das gut sein. Verdinst Du an der Downloadzeit? Ich sehe keinen Nutzen in dem Anliegen, außer das Du denjenigen ärgerst, der Dein Programm runterladen will, falls er mi ner schnellen Verbindung durchaus gleichzeitih noch was anderes runterladen könnte. Oder bei sehr langsamer Verbindung dennoch mehrere Dateien lädt, um die Zeit wenigstens optimal auszunutzen. Sinn würde es nur machen (aus meiner Sicht), wenn Du etwas Geld für den Download bekämst, dessen Höhe von der Dauer des Downloads abhängt. Aber sogar dann wäre es für Dich evtl. sogar günstiger, wenn nämlich der Download wegen einer langsamen Modemverbindung und gleichzeitigem Download mehrerer Dateien X-mal so lange dauert. Ich selber hab übrigens nix für Leite übrig, die die Downloadzeit mit irgendwelchen Tricks künstlich verlangsamen. Mache deswegen auch kein FileSharing. DSL kostet ein ganzes Stück mehr Geld als ne Modemverbindung und da will ich die höhere Geschwindigkeit auch spüren. Schließlich bezahle ich dafür.

faux 22. Aug 2005 17:00

Re: Nur ein Download pro IP?
 
Außerdem hat es keinen Sinn, weil der Server nichtmal ihm gehört... :S

Delphi-Freak 22. Aug 2005 21:54

Re: Nur ein Download pro IP?
 
Naja, der Sinn und Zweck ist, dass man dann keinen Download-Manager verwenden kann, der die Datei parallel mit mehreren Verbindungen herunterlädt (z.B. mit Verbindung1 das erste Drittel, mit Verbindung2 das zweite usw.) :wink:

Chewie 23. Aug 2005 09:00

Re: Nur ein Download pro IP?
 
Das ganze ist recht einfach, wenn du den Download per PHP durchführst.

Also einfach gesagt, du must folgendes tun, wenn der Benutzer den Download startet:

- IP in globale Liste (z.B. Datenbank) eintragen, falls noch nicht drinnen, sonst Fehlermeldung
- entsprechenen Header senden (application/octet-stream als Content-type o.ä.)
- Daten ausgeben (readfile() oder passthru() o.ä.)
- nun IP wieder entfernen

Wenn der Download aber vorzeitig abgebrochen wird, wird die IP u.U. nicht gelöscht, eventuell hilft aber ignore_user_abort

TillWe 23. Aug 2005 12:27

Re: Nur ein Download pro IP?
 
- IP und Session ist nicht wirklich verläßlich, da Session und IP geändert werden können.

Wenn Du möchtest, daß jeder nur einmal in einer bestimmten Zeit die Datei runterladen darf, würde ich es so machen, daß man seine E-Mail Adresse angeben muß.
Entweder per Login irgendwie, oder was sich in diesem Fale auch anbieten würde, die Datei direkt an angegeben E-Mail schicken.
(Weiß nicht ob Funpic mail unterstütz, wenn nicht kann ich Dir ein kostengünstiges Webspaceangebot unterbreiten :zwinker: )

IP oder Session ist nur zu gebrauchen wenn es auf den ein oder anderen download nicht ankommt und Du nur einen oberflächlichen Schutz brauchst.

Master_RC 28. Aug 2005 20:27

Re: Nur ein Download pro IP?
 
danke, dass ihr an meinen ideen zweifelt :D

nun gut, ich hab bereits eine andere lösung gefunden:
ein anderer downloadserver, der unbegrenzt traffic bietet udn trotzdem schnell ist :)

trotzdem danke! :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz