Ankündigung

Einklappen
Keine Ankündigung bisher.

IP Sperre auf Zeit

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • phphtmlcss
    hat ein Thema erstellt IP Sperre auf Zeit.

    IP Sperre auf Zeit

    Ich würde gerne für ein Login-Verfahren eine IP-Sperre nach 3 Fehlversuchen machen. Dass nach 3 Fehlversuchen etwas passiert hab ich schon. Nur leider verstehen ich nicht wie ich es machen soll, dass er eine IP-Sperre macht die für beispielsweise 15 Minuten anhält und dann automatisch aufgelöst wird.
    Ich hab schon rumgespielt, finde aber keine richtige Lösung.
    Habt ihr irgendwelche Ideen, Codeschnipsel etc. um mein Problem zu Lösen?
    Hier mein bisheriger Code-Versuch:

    Die Funktion:
    PHP-Code:
                function ReloadSperre()
    {
        
    // Dauer der Sperre in Sekunden
        
    $sperrZeit 15// 3600 = 1 Stunde
        
    $dateiname "reload.txt";
        
    // Zeit bis Sperre abgelaufen
        
    $reloadZeit 0;
        
    // IP-Adresse
        
    $ip $_SERVER['REMOTE_ADDR'];
        
    // aktuelle Zeit
        
    $zeit time();
        
    $datei file($dateiname);
        
    // Datei durchlaufen und auf Sperren prüfen
        
    for($i 0$i sizeof($datei); $i++)
        {
            
    $eintrag explode("|"$datei[$i]);
            
    // Sperre aktiv?
            
    if($eintrag[0] > $zeit $sperrZeit)
            {
                
    // gleiche IP?
                
    if(trim($eintrag[1]) == $ip)
                {
                    
    // Restdauer der Sperre berechnen
                    
    $reloadZeit $sperrZeit - ($zeit $eintrag[0]);
                }
                
    // Zeile wieder dem Dateiinhalt hinzufügen
                
    $neuerInhalt .= $datei[$i];
            }        
        }
        
    // Keine Sperre => neuen Eintrag erzeugen
        
    if($reloadZeit == 0)
            
    $neuerInhalt .= $zeit."|".$ip."\n";
        
    // Daten in Datei speichern
        
    $handle fopen($dateiname"w");
        
    fwrite($handle$neuerInhalt);
        
    fclose($handle);
        
    $handle2 fopen($datei"w");
        
    fwrite($handle2$startwert);
        
    fclose($handle2);
        
    // Restzeit zurückgeben
        
    return $reloadZeit;

    Der eigentliche Inhalt:
    PHP-Code:
            $reload ReloadSperre();
            if(
    $reload 0) {
                echo 
    "Du musst noch ".sprintf("%02d:%02d:%02d",
                    
    $reload 60 60, ($reload 60) % 60$reload 60)." warten, bis du dich erneut einloggen kannst.";
            } else { 
    Dankeee!

  • jspit
    antwortet
    Ich möchte fast wetten daß du eine DB zur Hand hast, denn die wird mit PHP von Hause aus mitgeliefert: SQLite

    Wenn du dann noch PDO benutzt, kannst du problemlos auf z.B. MySQL umsatteln wenn es beliebt.

    Einen Kommentar schreiben:


  • phphtmlcss
    antwortet
    Ja ich weiß, hab nur leider keine DB zur Hand und musste deshalb als kurze Übergangslösung auf txt zurückgreifen
    Letztendlich werde ich selbstverständlich eine DB verwenden..

    Einen Kommentar schreiben:


  • tkausl
    antwortet
    Mithilfe einer Datenbank würde aus deinem (gefühlt) 200-Zeiler ein ~5-Zeiler

    Einen Kommentar schreiben:


  • phphtmlcss
    antwortet
    ok werd das mal machen. Danke.

    Einen Kommentar schreiben:


  • hausl
    antwortet
    Wieso noch einer?

    http://www.php.de/php-einsteiger/109...tml#post804667

    Dass nach 3 Fehlversuchen etwas passiert hab ich schon.
    Achso...

    Nur leider verstehen ich nicht wie ich es machen soll, dass er eine IP-Sperre macht die für beispielsweise 15 Minuten anhält und dann automatisch aufgelöst wird.
    Zeitstempel setzen und den bei jedem relevanten Request prüfen.

    LG

    Einen Kommentar schreiben:


  • akretschmer
    antwortet
    Zitat von phphtmlcss Beitrag anzeigen
    Ich würde gerne für ein Login-Verfahren eine IP-Sperre nach 3 Fehlversuchen

    Du hast die Frage mehrfach unter untersch. Nicks in verschiedenen Foren gestellt und auch Antworten bekommen. Verträgst Du grad die Hitze nicht oder was soll das?

    http://phpforum.de/forum/showthread.php?t=279835

    Einen Kommentar schreiben:

Lädt...
X