Re: @Perlprofis - IP Sperre einrichten - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 6.Juli.2001, 13:53.
    Re: @Perlprofis - IP Sperre einrichten

      Das mit dem Leerzeichen is garnich so komisch ;-)

      baseportal nimmt _genau_ das was Du hinschreibst, denn es wäre ja möglich, dass Du einen Feldnamen "zeit " hast und den meinst...


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Gregor (79 Beiträge) am Donnerstag, 5.Juli.2001, 14:00. WWW: www.Lyricsarchiv.de
    @Perlprofis - IP Sperre einrichten

      An alle Perlprofis,

      ich hab auf meiner Homepage ein Votingskript (von Agapi) installiert welches auch einwandfrei funktioniert. Leider gibt es dort einen Scherzbold der hin und wieder 20-30 mal hintereinander das schlechteste Bewertungskriterium (hundsmiserabel ;-) anklickt. Dies möchte ich durch eine IP Sperre verhindern hab aber keine Ahnung wie man das in Perl programmiert.
      Ich dachte mir, dass man doch die IP Adresse + Datum in einer extra Datenbank erfassen könnte, und wenn ein User mit dieser IP das Template (Votingdatenbank) nochmals aufruft (innerhalb z.B. 2 Stunden) er auf ein bestimmtes Template gelenkt wird.
      Am besten wäre es dann natürlich noch, wenn die Einträge in der Datenbank die älter als 2 Stunden sind automatisch wieder gelöscht werden - ist aber nur nichtunbedingtnotwendigerluxus *g*.

      Falls jemand von Euch einen Vorschlag hat, wie man das realisieren könnte wär ich überglücklich.

      MfG Gregor

     Antworten

    Beitrag von Claus S. (1668 Beiträge) am Donnerstag, 5.Juli.2001, 14:09.
    Re: @Perlprofis - IP Sperre einrichten

      hallo gregor,
      in der bibliothek gibt es beispiele, die sich mit IP befassen (z.b. statistik von tina), die müsstet du dir auf deine bedürfnisse anpassen.

      andererseits wird es dir nicht viel nützen, da die meisten (z.b. t-online nutzer) IPs zugeordnet bekommen, d.h. sie wechseln ständig.

      da ist es sinnvoller, in das voting eine reload-sperre einzubauen, dann kann der scherzbold nur ein mal pro session "zuschlagen".

      gruss claus

     Antworten

    Beitrag von Gregor (79 Beiträge) am Donnerstag, 5.Juli.2001, 15:04. WWW: www.Lyricsarchiv.de
    Re: @Perlprofis - IP Sperre einrichten

      Erst mal danke für die schnelle Antwort, ein paar Fragen bleiben aber leider noch offen.

      Basiert eine Reloadsperre nicht auch auf der Sperrung bestimmter IP-Adressen für einen gewissen Zeitraum??
      Und falls ich mich irren sollte (kommt nicht zu selten vor ;-) wie funktioniert so eine Reloadsperre dann???

      Was das T-Online Problem angeht, so ändert sich die IP-Adresse ja nicht während einer Onlinesitzung und genau dort liegt ja das Problem, das hintereinander 20x mal auf den Wertungsbutton geklickt wird....

      freu mich weiterhin über Hilfe,

      Gregor

     Antworten

    Beitrag von Stefan Skalla (86 Beiträge) am Donnerstag, 5.Juli.2001, 15:22. WWW: www.WhatsOnMyMind.net
    Re: @Perlprofis - IP Sperre einrichten

      Irgendwie so:

      1. Datenbank "sperre" anlegen; Felder: ip, zeit
      2. Zeitspanne (in Sekunden) nach eigenem Ermessen festlegen, z.B. 7200 für 2 Stunden;

      Wenn jetzt abgestimmt wird,

      <perl>
      #Zeitschranke definieren:
      $sek=7200;
      $gesperrt=0;
      #IP abfragen:
      $ip=$_REMOTE_ADDR;
      #IP in der Datenbank suchen:
      #Pruefen, ob schon vorhanden:
      get "ip==$ip","sperre";
      #wenn ja, ob das innerhalb der letzten 2 Stunden war:
      if (($_amount>0) && ($zeit > time-$sek))
      #wenn ja, sperre den Typen:
      {
      $gesperrt=1;
      }
      #Wenn er nicht gesperrt wird:
      if ($gesperrt==0)
      {
      #loesche nebenbei alte Eintraege:
      del "zeit < ".(time - $sek),"sperre";
      #merke dir die IP und die aktuelle Zeit:
      put ["ip", $ip, "zeit", time], "sperre";
      #und fuege ab hier die Routinen zum Zaehlen ein...
      }
      </perl>
      

      ...oder so ähnlich. Hoffe, es klappt.

      Gruß,
      Stefan

     Antworten

    Beitrag von Gregor (79 Beiträge) am Donnerstag, 5.Juli.2001, 15:35.
    Re: @Perlprofis - IP Sperre einrichten

      Suuuper, ich werds gleich (sobald ich zu Hause bin) ausprobieren und dann bescheid geben ob es funktioniert hat....

      Danke Dir Stefan,

      Gregor

     Antworten

    Beitrag von Gregor (79 Beiträge) am Donnerstag, 5.Juli.2001, 16:53.
    Re: @Perlprofis - IP Sperre einrichten

      Hmmm irgendwie scheint es noch nicht zu klappen. Ich habe den Code so eingefügt und wenn die IP noch nicht vorhanden ist, soll er einen bestimmten Wert in einer anderen Datenbank um 1 erhöhen. Er erhöht den Wert jedoch immer um 1 egal ob die IP schon da war oder nicht.
      Hier ist nochmal mein Code, vielleicht weißt Du ja woran es liegt...

      <perl>
      #Zeitschranke definieren:
      $sek=7200;
      $gesperrt=0;
       
      #IP abfragen:
      $ip=$_REMOTE_ADDR;
       
      #IP in der Datenbank suchen:
      #Pruefen, ob schon vorhanden:
      get "ip==$ip","sperre";
      

      #wenn ja, ob das innerhalb der letzten 2 Stunden war:
      if (($_amount>0) && ($zeit > time-$sek))
       
      #wenn ja, sperre den Typen:
      {
      $gesperrt=1;
      }
      #Wenn er nicht gesperrt wird:
      if ($gesperrt==0)
      {
       
      #loesche nebenbei alte Eintraege:
      del "zeit < ".(time - $sek),"sperre";
      

      #merke dir die IP und die aktuelle Zeit:
      put ["ip", $ip, "zeit", time], "sperre";
      

      #und fuege ab hier die Routinen zum Zaehlen ein...
      }
      

      #Wenn er nicht gesperrt ist soll er $S4 in der Datenbank Umfrage um 1 erhöhen
      if ($gesperrt==0)
      {
      get "", "Umfrage";
      {
      $neu=$S4+1;	
      mod "",["S4",$neu],"Umfrage";
      }
      }
      </perl>
      <include src=Auswertung>
      

     Antworten

    Beitrag von Stefan Skalla (86 Beiträge) am Donnerstag, 5.Juli.2001, 17:55. WWW: www.WhatsOnMyMind.net
    Re: @Perlprofis - IP Sperre einrichten

      Schau mal hier: http://baseportal.de/cgi-bin/baseportal.pl?htx=/womm/test2

      Die Felder in der Datenbank heißen ip (Text, Sortierung als Text) und zeit (Text, Sortierung als Zahl).

      Das ist der Quelltext (Mit Zeitspanne zum Testen von 20 Sekunden):

      <html>
      <body bgcolor="#ffffff">
      <perl> 
      $sek=20; 
      $gesperrt=0; 	
      $ip=$_REMOTE_ADDR; 	
      get "ip==$ip","sperre"; 	
      if (($_amount>0) && ($zeit > time-$sek)) 	
      { 
       $gesperrt=1; 
      }
      if ($gesperrt==0) { 	
      del "zeit < ".(time - $sek),"sperre";
      put ["ip", $ip, "zeit", time], "sperre"; 	
      }
      out "Zeitschranke: ".$sek." Sekunden<br>";
      if ($gesperrt==0) 
      {
       out "Du darfst abstimmen!";
      }
      else
      {
       out "Du darfst erst in ".($zeit+$sek-time)." Sekunden wieder!";
      }
      out <<EOF;
      <br><a href="http://baseportal.de/cgi-bin/baseportal.pl?htx=/womm/test2">Nochmal</a>
      EOF
      </perl>
      </body>
      </html>
      

      Also die Überprüfung funktioniert soweit. Wie sehen denn die Felder der Datenbank aus, in der bei Dir gezählt wird?

      Stefan

     Antworten

    Beitrag von Gregor (79 Beiträge) am Donnerstag, 5.Juli.2001, 18:23.
    Re: @Perlprofis - IP Sperre einrichten

      Ich hab mir gerade Dein Template angeschaut aber bei mir steht immer (auch nach Reload) "Du darfst abstimmen"????
      Die Felddefinitionen hab ich nach Deinen Anweisungen eingerichtet und sowohl IP als auch die Zeit (in Sekunden ab 1970... *g*) wird korrekt in die Datenbank Sperre eingefügt.
      Die Zahl die erhöht werden soll "$S4" ist in einem normalen Zahlenfeld hinterlegt und als ganze Dezimalzahl definiert.

      Sorry, dass ich Dich hier so beschäftige und super vielen Dank für Deine Hilfe...

      Gregor

     Antworten

    Beitrag von Stefan Skalla (86 Beiträge) am Donnerstag, 5.Juli.2001, 18:45. WWW: www.WhatsOnMyMInd.net
    Re: @Perlprofis - IP Sperre einrichten

      Ich versteh die Welt nich mehr. Sitze jetzt an einem anderen Rechner (mein Mac zu Hause) und da geht's wirklich auch nicht mehr. Keine Ahnung, was hier los ist. Ich schau noch mal...

      Stefan

     Antworten

    Beitrag von Gregor (79 Beiträge) am Donnerstag, 5.Juli.2001, 19:34.
    Re: @Perlprofis - IP Sperre einrichten

      Vielleicht hat es irgendetwas damit zu tun, dass er nur einen Datensatz schreibt. Hab zu Hause 2 Rechner (1x ISDN und 1x DSL) mit 2 verschiedenen Providern, aber dennoch wird in der Datenbank nur ein Datensatz angezeigt. Dabei sind ja 2 verschiedene IP Adressen eingegangen.

      Vielleicht hilft Dir das ein wenig weiter...

      PS: Danke für Deinen Gästebucheintrag *freu*

     Antworten

    Beitrag von Stefan Skalla (86 Beiträge) am Freitag, 6.Juli.2001, 09:39. WWW: www.WhatsOnMyMind.net
    Re: @Perlprofis - IP Sperre einrichten

      Hi Gregor,
      probier's jetzt nochmal. Scheint jetzt wirklich zu gehen:

      http://baseportal.de/cgi-bin/baseportal.pl?htx=/womm/test2

      Wichtig (und ziemlich komisch): Bei dem "del"-Befehl darf zwischen dem "<"-Zeichen und dem Feldnamen bzw. der Variablen $zeitschranke kein Leerzeichen stehen. Seit ich die entfernt habe, läuft's.
      Quelltext:

      <html>
      <body bgcolor="#ffffff">
      <perl>
      $sek=20;
      $gesperrt="0";
      $ip=$_REMOTE_ADDR;
      $jetztzeit=time;
      $zeitschranke=$jetztzeit - $sek;
      out "IP: ".$ip."<br>";
      get "ip==$ip","sperre";
      if ($zeit > $zeitschranke)
      {
       $gesperrt="1";
      }
      if ($gesperrt eq "0")
      {
       put ["ip",$ip,"zeit",$jetztzeit],"sperre";
       del "zeit<$zeitschranke","sperre";
      }
      out "Zeitschranke: ".$sek." Sekunden<br>";
      if ($gesperrt eq "0")
      {
       out "Du darfst abstimmen!";
      }
      else
      {
       out "Du darfst erst in ".($zeit+$sek-$jetztzeit)." Sekunden wieder!";
      }
      out <<EOF;
      <br><a href="http://baseportal.de/cgi-bin/baseportal.pl?htx=/womm/test2">Nochmal</a>
      EOF
      </perl>
      </body>
      </html>
      

      Stefan

     Antworten

    Beitrag von Gregor (79 Beiträge) am Freitag, 6.Juli.2001, 10:25.
    Re: Bin restlos begeistert...

      Hey Stefan,

      vielen, vielen Dank für die Mühe die Du dir gemacht hast. Es funktioniert jetzt alles einwandfrei und ohne den kleinsten Fehler.

      Super, thanx und weiterhin viel Erfolg mit Deiner Homepage.....

      Gregor

     Antworten

    Beitrag von Tina H. (34 Beiträge) am Freitag, 6.Juli.2001, 11:29. WWW: zergportal.de
    Re: Umfrage mit IP-Sperre in BIB

      Hallo,

      wäre doch was für die BIB

      Viele Grüße
      Tina

     Antworten

    Beitrag von Gregor (79 Beiträge) am Freitag, 6.Juli.2001, 11:52.
    Re: Umfrage mit IP-Sperre in BIB

      Wohl war ;-)

      Ich werd's heute oder morgen reinstellen...

     Antworten

    Beitrag von Beetle (178 Beiträge) am Sonntag, 8.Juli.2001, 16:18. WWW: vwwa.de
    ~ Gregor #Re: Umfrage mit IP-Sperre in BIB / Archiv ?

      Hallo Gregor + ALLE,

      wie hast Du bitte das mit dem Vote Archiv gelöst ?
      In der Agapi Version ist das Feld Freigabe zum
      steuern, was abgestimmt wird und was Archiv ist.

      Oben soll die aktuelle Umfrage stehen und
      unten das Archiv aus der gleichen Datenbank.
      ( Oder muss man für jede Abstimmung eine Datenbank
      anlegen ? )

      Habe mal was getestet, aber so richtig klappt es
      noch nicht. Danke für Antworten.

      http://www.nutzfzg.de/umfrage

     Antworten

    Beitrag von Beetle (178 Beiträge) am Montag, 9.Juli.2001, 09:04. WWW: vwwa.de
    Re: ~ Gregor #Re: Umfrage mit IP-Sperre in BIB / Archiv ?

      Hallo BP Gemeinde,

      gestern Nacht wurde in meiner Umfrage Datenbank
      der Wert der Stimme1 von "31" auf "0" gesetzt.
      War zwar nur eine Testseite, aber doch irgendwie
      merkwürdig.

      http://www.nutzfzg.de/umfrage

      Rechte: ...bestehende Daten ändern oder löschen? X

      Ist es möglich sowas zu unterbinden, oder muessen
      diese Rechte bestehen, um die Umfrage zu steuern ?

     Antworten

    Beitrag von StSk (3 Beiträge) am Montag, 9.Juli.2001, 09:34. WWW: www.WhatsOnMyMind.net
    Re: ~ Gregor #Re: Umfrage mit IP-Sperre in BIB / Archiv ?

      Hi,

      wenn die Zählung über ein Perl-Script mit einem mod-Befehl erfolgt, müsste das auch funktionieren, wenn Du das Recht zum Ändern/Löschen abschaltest. Probier's doch einfach mal aus.

      Gruß,
      Stefan

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 6.Juli.2001, 13:53.
    Re: @Perlprofis - IP Sperre einrichten

      Das mit dem Leerzeichen is garnich so komisch ;-)

      baseportal nimmt _genau_ das was Du hinschreibst, denn es wäre ja möglich, dass Du einen Feldnamen "zeit " hast und den meinst...

     Antworten

    Beitrag von Stefan Skalla (86 Beiträge) am Freitag, 6.Juli.2001, 14:22. WWW: www.WhatsOnMyMind.net
    Re: @Perlprofis - IP Sperre einrichten

      Hi Christoph,

      nee, komisch war's wirklich nicht.
      Und etwas verwirrend ist es auch. Beim "==" ist es nämlich völlig egal, ob Leerzeichen dazwischen sind oder nicht. Eine einheitliche Regelung wäre schon sinnvoll, denke ich.

      Gruß,
      Stefan

     Antworten


     
 Liste der ersten 150 Einträge:Einklappen Zur Eingabe 
 Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.39s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!