Scripts
Ip ban class met text file
Beste medephpers, Ik had laatst een script nodig om iemand een x aantal uur te verbannen van een pagina. Op mijn login pagina moest een bezoeker 24 uur verbannen worden als deze het wachtwoord meer dan 5 x fout had. Vandaar dat ik deze class geschreven heb. Ik ben pas een week bezig met programmeren in classes dus alle kritiek is welkom. Mvg Pepijn
ip-ban-class-met-text-file
<?php
//ip_ban.inc.php
class IP_ban {
public $Filename = NULL;
function __construct($Filename) {
$this->Filename = $Filename;
}
function Ban_IP($IP, $Hours_banned) {
$Expire_date = mktime(date('H')+$Hours_banned,date('i'),date('s'),date('m'),date(d),date('Y'));
$Content = @file_get_contents($this->Filename);
$Handle = fopen($this->Filename, 'w+');
$Content = $IP."\t".$Expire_date."&\r\n".$Content;
fwrite($Handle, $Content);
fclose($Handle);
}
function Is_banned($IP) {
$Now = time();
$Handle = @fopen($this->Filename, 'r');
$Content = @fread($Handle, filesize($this->Filename));
$Content = strstr($Content, $IP);
if($Content === 0) {
return 0;
}
else {
$Content = str_replace($IP."\t", '', $Content);
$Content = explode('&', $Content);
$Expire_date = $Content[0];
if($Now > $Expire_date) {
return 0;
}
else {
return 1;
}
}
}
}
?>
<?php
//voorbeeld
include('ip_ban.inc.php');
$IP_ban = new IP_ban('blacklist.txt');
//Ban een IP: Ip, x aantal uur.
$IP_ban->Ban_IP($_SERVER['REMOTE_ADDR'], 5);
//Kijk of een ip verbannen is:
if($IP_ban->Is_banned($_SERVER['REMOTE_ADDR']) ) {
echo 'Verbannen';
}
else {
echo 'Niet verbannen';
}
?>
Reacties
0