Oggi vedremo come creare un semplicissimo ban di ip attraverso l'uso di un database formato da un file di testo, che andrà a contenere gli ip da bloccare.
Gli ip all'interno del file che noi chiameremo "ip_db.txt" dovranno essere sepratati da una virgola e da uno spazio:
ES. 192.168.1.1, 87.149.111.3, 188.156.22.1 ecc.
Fatta questa prima premessa passiamo al codice che ho commentato in modo da farvi capire meglio il funzionamento. Per ogni dubbio o problema potete lasciare commenti infondo.
//IP reale
if (!empty($_SERVER['HTTP_CLIENT_IP'])){
$ip=$_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip=$_SERVER['REMOTE_ADDR'];
}
//file database
$file = "ip_db.txt";
//apro il file
$open=fopen($file,'r');
$contenuto=fread($open,9000);
fclose($open);
//divido ip separati da ,
$contenuto=explode(',',$contenuto);
$i=0;
//messaggio ban
$messaggio_ban='Il tuo '.$ip.' è stato bloccato!';
foreach($contenuto as $ips){
//divido ip sepratati dallo spazio
$ips=explode(' ',$ips);
//confronto gli ip estratti
if($ip==$ips[$i]) {
//blocco
die($messaggio_ban);
$i=0;
} else {
//incremento
++$i;
}
}
Prima di poter lasciare un commento devi ACCEDERE oppure REGISTRATI subito!