-
Bannare range ip
Salve,
non sò se questa è la sezione giusta per postare ma mi potete dire come faccio a bannare un range di ip dagli accessi del mio sito?
dal file .htaccess non ci sono riuscito, qualcuno mi può dire cosa ci devo scrivere oppure se esiste una soluzione alternativa? a me interessava inibire un range di ip dal guestbook
grazie in anticipo per l'aiuto :roll:
-
Potresti utilizzare il PHP. Verifichi l'indirizzo IP del visitatore, se è compreso nel range degli indirizzi IP bannati puoi decidere se reindirizzarlo da qualche altra parte o se non fargli vedere il contenuto della pagina.
-
io l'ho fatto in php ma sinceramente non funziona e non sò che pesci pigliare
-
crei una pagina chiamata ipbanner.php
Codice PHP:
<?PHP
$fd = fopen ("ban.txt", "r");
while (!feof ($fd)) {
$buffer = fgets($fd, 4096);
$buffer= chop($buffer);
$ip = $REMOTE_ADDR;
if ($ip == "$buffer") {
//if so write it to a logfile
$file = "log.txt";
$log = fopen($file,"a+");
$line = fgets($log, 4096);
fclose($log);
// write to logfile
$string = "$ip::PERMISSION DENIED\n";
$log = fopen($file, "a+");
$string = fwrite($log, $string);
fclose($log);
// throw them to another page
?>
<script language="javascript">
<!--
document.location='bannato.php';
// -->
</script>
<?PHP
}
}
fclose ($fd);
?>
crei un file ban.txt con la lista degli IP bannati
crei un file log.txt vuoto (ci verra' scritto ogni accesso dell'IP bannato)
e crei una pagina bannato.php con quello che vuoi che veda il bannato
naturalmente puoi modificarlo per come ti serve!
-
Grazie, gentilissimo adesso provo subito
EDIT: per bannare un range uso semplicemente gli asterischi?
tipo xxx.xxx.*.* ?
-
Per mettere i range di indirizzi IP prova a utilizzare questo script utilizzando sempre gli stessi file di testo:
Codice PHP:
<?
$ip=explode(".",$_SERVER['REMOTE_ADDR']);
$fd=file("ban.txt");
for($i=0;$i<count($fd);$i++) {
$ipbannato=explode(".",trim($fd[$i]));
if (($ipbannato[0]==$ip[0] || $ipbannato[0]=="*") && ($ipbannato[1]==$ip[1] || $ipbannato[1]=="*") && ($ipbannato[2]==$ip[2] || $ipbannato[2]=="*") && ($ipbannato[3]==$ip[3] || $ipbannato[3]=="*")) {
$log=fopen("log.txt","a+");
fwrite($log,implode(".",$ip)."::PERMISSION DENIED\n";);
fclose($log);
Header("Location: bannato.php");
}
}
?>
P.S.: Non fare UP, usa il tasto Edita.