PHP4-Forum
Forum | Befehle | MySQL | Beispiele | Newsletter | Suche | Home

Untermenü

Beispiele
Datenbankbasiert
Dateibasierte
Spiele
Sonstige

Zu dieser Seite

Dateibasierte
G├Ąstebuch
Suchmaschine
Counter
Emailanhang
Quellcode
Upload
Sitemap erstellen
IP Sperre
Datenbankanbindung
So erstellen Sie eine IP-Sperre

Download | Testen

Dieses Beispiel ist eine kleine IP-Sperre, die auf Dateien basiert. Die Funktion liefert true, wenn die IP-Adresse des Users gefunden wird. Bei den Einstellungen k├Ânnen Sie bestimmen, f├╝r wie lange eine IP gesperrt bleibt.

Autor: Uli Pahlke
Homepage: http://www.chilliserver.de
Email: mail@chilliserver.de

<?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 = 1000;
    $zeitlimit = 60; // 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 erlaubt";
  else echo "IP wurde gefunden";

?>
Dienstleistungen | Werbung | Impressum | Sitemap | Kontakt | Email © 1999 - 2013 | Last Update: 09.06.2005