IP Sperre funktionier nicht richtig

PC Freak

Erfahrenes Mitglied
Hallo,
hab mir anhand von Code Schnipseln eine IP Sperre gebastelt. Leider funktioniert diese nicht richtig. Eine IP soll 14400 Sek gesperrt sein, allerdings tut sie dies nicht. Sie bleibt einige Aufrufe gesperrt, dann wieder einmal nicht und dann wieder einige Aufrufe ...

Der Code:

PHP:
<?php
 $zugriff = 'Zugriff';
 ?>


<?php
  // Speicherung der Daten in einer Datei
  function schreiben($datei,$mode){

    $fp = @fopen($datei,$mode);
    flock($fp,2);
    fwrite($fp,$_SERVER["REMOTE_ADDR"]."|".time()."\n");
    flock($fp,3);
    fclose($fp);

  }
  function ip_sperre() {

    // Einstellungen
    $reloadlogdatei = "reload.txt";
    $anzahleintraege = 1000000000000000000000000000000000000000000000000000000000000000000000;
    $zeitlimit = 14400; // in Sekunden

    // Prüft, ob Datei existiert => ansonsten Erstellen
    if(!file_exists($reloadlogdatei)) {
      $datei = fopen($reloadlogdatei,"w+");
      fclose($datei);
    }
    $fp = file($reloadlogdatei);
    $size = sizeof($fp);

    // Beschreibt die Datei, wenn Liste voll
    if($size >= $anzahleintraege){
      schreiben($reloadlogdatei,"w");
    // Prüft, ob eine IP in der Liste steht
    } else {

      for ($i=0;$i<=$size;$i++) {
        $zeile = explode("|",$fp[$i-1]);
        // IP wird gefunden
        if ($zeile[0] == $_SERVER["REMOTE_ADDR"] AND $zeile[1] > (time()-$zeitlimit)){
          $ausgabe = true;
        // IP wird nicht gefunden
        } else  {
          $ausgabe = false;
        }
      }
      // Protokolliert die IP-Adresse (schreibt)
      schreiben($reloadlogdatei,"a+");
    }
    return $ausgabe;
  }

  // Hauptaufruf des Programms
  if(ip_sperre()==false) echo "$zugriff";
  else echo "kein zugriff";
?>

hab nicht viel Ahnung von PHP
 
Geschehen diese „einige Aufrufe“ vielleicht innerhalb der 14400-Sekunden-Frist? Wozu brauchst du überhaupt eine IP-Sperre?
 
Zurück