
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";
?>
|
|
|
|
|