Hallo,
ich weiß nicht ob das es hier schon gibt, aber ich würde gern etwas haben um bestimmte ip Adressen zu sperren damit keine Seiten von den jenigen eingetragen werden können.
Hintergrund ist, das immer wieder Seiten in Türkischer sprache eingetragen werden obwohl ich in den Rules darauf hingewiesen das seiten in Türkischer sprache noch nicht eingetragen werden können.
Ich habe auch schon Capcha eingeschalten.
mfg
IP Sperre
Moderator:Paddelberg
- Paddelberg
- Site Admin
- Beiträge:925
- Registriert:Dienstag 17. Januar 2006, 00:02
- Wohnort:Worms
Hi
du könntest dir folgenden Code in dei add.php einfügen. (in Zeile 22 nach dem Code $do = safety($_GET["do"]); )
in der Variablen $ips (erste Zeile) kannst du die ips angeben, die gesperrt werden sollen (die, die momentan drin stehen können gelöscht werden)
Die ips müssen dabbei nach Komma getrennt werden
Du kannst entweder einzelne ips angeben (123.123.123.123)
oder ip Ranges
123.123-123.125 -> sperrt alle ips im Bereich 123.123.0.0 - 123.125.255.255
123.123 (sperrt den Bereich von 123.123.0.0 - 123.123.255.255
zusätzlich kannst du eine eigene Fehlemeldung angeben (standard wird Forbidden ausgegeben), indem du in der zweiten Zeile die Variable $error_message mit einem beliebigen Text belegst.
mfg
simon
du könntest dir folgenden Code in dei add.php einfügen. (in Zeile 22 nach dem Code $do = safety($_GET["do"]); )
Code: Alles auswählen
$ips = '154.58.78.68,154.58,154.58-154.59';
$error_message = '';
function ip_block ($ips, $error_message = false)
{
$ips = explode (',', $ips);
foreach ($ips as $ip)
{
# ip range
if (preg_match ("@(.*)\-(.*)@", $ip, $match))
{
if (substr ($_SERVER['REMOTE_ADDR'], 0, strlen ($match[1])) >= $match[1] && substr ($_SERVER['REMOTE_ADDR'], 0, strlen ($match[2])) <= $match[2])
{
header("HTTP/1.1 403 Forbidden");
if (!empty ($error_message))
{echo $error_message;}
else
{echo 'Forbidden';}
exit ();
}
}
# ip oder teil
else
{
if (preg_match ("@^".preg_replace ("@\.@", '\\.', $ip)."@", $_SERVER['REMOTE_ADDR']))
{
header("HTTP/1.1 403 Forbidden");
if (!empty ($error_message))
{echo $error_message;}
else
{echo 'Forbidden';}
exit ();
}
}
}
}
ip_block ($ips, $error_message);
Die ips müssen dabbei nach Komma getrennt werden
Du kannst entweder einzelne ips angeben (123.123.123.123)
oder ip Ranges
123.123-123.125 -> sperrt alle ips im Bereich 123.123.0.0 - 123.125.255.255
123.123 (sperrt den Bereich von 123.123.0.0 - 123.123.255.255
zusätzlich kannst du eine eigene Fehlemeldung angeben (standard wird Forbidden ausgegeben), indem du in der zweiten Zeile die Variable $error_message mit einem beliebigen Text belegst.
mfg
simon