Scripts
IP blokkade / ip bannen
Met dit script kun je IP adressen beheren die geen geblokkeerd zijn op jouw website. Gebruik het volgende MySQL tabel: CREATE TABLE `ip_blocks` ( `id` INT( 11 ) NOT NULL AUTO_INCREMENT, `ip_adres` VARCHAR( 20 ) NOT NULL , `block_datum` VARCHAR( 20 ) NOT NULL , PRIMARY KEY ( `id` ) ); Zet op elke pagina van je website: include("block.php"); De admin.php kun je overal neerzetten.. Wel op een plek die niet voor de hand ligt natuurlijk. Je kunt deze als je zou willen ook nog beveiligen met een login script of d.m.v. HTTP authentication.
ip-blokkade-ip-bannen
----------------- admin.php -------------------
<?
//-- eerst maken we dus de database connectie
$mysqluser = "mysql_user";
$mysqlpass = "mysql_pass";
$mysqlhost = "localhost";
$mysqldbdb = "mysql_database_naam";
if (!@mysql_select_db($mysqldbdb, @mysql_connect($mysqlhost, $mysqluser, $mysqlpass)))
{
echo "<b>error</b><p>";
echo "Er kon geen database connectie worden gemaakt.";
exit();
}
unset($mysqluser);
unset($mysqlpass);
unset($mysqlhost);
unset($mysqldbdb);
//-- defineer tabelnaam
$table = "ip_blocks";
//-- als de var $ip niet geset is, laat dan het formulier zien of voeg ip toe in db
if (!$_GET['ip'])
{
//-- bekijk of het formulier verzonden is en of er een IP adres is opgegeven
if ($_POST['ip_adres'])
{
//-- probeer het ingevoerde adres uit de database te halen
//-- zo kunnen we kijken of het er al in staat of niet...
$checksql = "SELECT id FROM " . $table . " WHERE ip_adres = '" . $_POST['ip_adres'] . "'";
$checkres = mysql_query($checksql);
//-- bekijk of er een resultaat is
if (mysql_num_rows($checkres) >= 1)
{
$error = "bestaat";
}
//-- als er geen resultaat is ga dan verder
else
{
//-- zet de huidige datum (syntax voorbeeld: 02.09.2003)
$block_datum = date('d.m.Y');
//-- zet het IP adres en de datum in de database
$sql = "INSERT INTO $table (id, ip_adres, block_datum) VALUES ('', '" . $_POST['ip_adres'] . "', '" . $block_datum . "')";
$res = mysql_query($sql);
//-- kijk of het goed is gegaan
if ($res)
echo "IP adres " . $_POST['ip_adres'] . " wordt vanaf nu geblokkeerd.<p>Klik <a href=\"" . $_SERVER['PHP_SELF'] . "\">hier</a> voor het formulier.";
//-- als het niet goed is gegaan
else
echo "IP adres " . $_POST['ip_adres'] . " wordt NIET geblokkeerd.<p>Klik <a href=\"" . $_SERVER['PHP_SELF'] . "\">hier</a> voor het formulier.";
}
}
//-- is het formulier niet verstuurd of is er een "$error", laat dan het formulier zien
if (!$_POST['submit'] || $error)
{
//-- als $error geset is
if ($error)
echo "Het IP adres <b>" . $_POST['ip_adres'] . "</b> is al geblokkeerd.<p>";
echo "Klik <a href=\"" . $_SERVER['PHP_SELF'] . "?ip=all\">hier</a> voor alle geblokkeerde IP adressen<p>";
//-- het formulier moet 'gepost' worden en het moet naar zichzelf ($_SERVER['PHP_SELF'] verwijzen)
echo "<form method=\"post\" action=\"" . $_SERVER['PHP_SELF'] . "\">";
echo "<B>Ip adres:</b> <input type=\"text\" maxlength=\"20\" name=\"ip_adres\" value=\"" . htmlentities($_POST['ip_adres']) . "\"><br>";
echo "<input type=\"submit\" name=\"submit\" value=\" blokkeer \">";
echo "</form>";
}
}
//-- als $ip wel geset is, laat dan alle geblockte ip adressen zien
else
{
//-- als er op een verwijder linkje is geklikt:
if ($_GET['del'])
{
//-- verwijder het ip adres uit de database
$sql = "DELETE FROM " . $table . " WHERE id = '" . $_GET['del'] . "'";
$res = mysql_query($sql);
//-- kijk of het allemaal goed is gegaan
if ($res)
echo "Het IP adres is succesvol uit de database verwijderd.<p>Klik <a href=\"" . $_SERVER['PHP_SELF'] . "?ip=all\">hier</a> voor de lijst.";
//-- als het niet goed is gegaan geef de volgende melding
else
echo "Het IP adres is niet uit de database verwijderd.<p>Klik <a href=\"" . $_SERVER['PHP_SELF'] . "?ip=all\">hier</a> voor de lijst.";
}
//-- laat de lijst zien
else
{
echo "Klik <a href=\"" . $_SERVER['PHP_SELF'] . "\">hier</a> om een IP adres te blokkeren.<p>";
//-- haal alle ip adressen uit de db
$sql = "SELECT id,ip_adres,block_datum FROM " . $table . " ORDER BY id DESC";
$res = mysql_query($sql);
//-- maak een HTML tabel
echo "<table border=\"1\" cellspacing=\"0\" cellpadding=\"5\" bordercolor=\"#000000\">";
echo "<tr><td width=\"100\"><b>Ip adres</b></td><td><b>Datum blokkade</b></td><td>Verwijderen</td></tr>";
//-- bekijk of er ip adressen in de bloklijst staan
if (mysql_num_rows($res) >= 1)
{
//-- loop door de resultaten
while ($row = mysql_fetch_array($res))
{
echo "<tr><td>" . $row['ip_adres'] . "</td><td>" . $row['block_datum'] . "</td><td><a href=\"" . $_SERVER['PHP_SELF'] . "?ip=all&del=" . $row['id'] . "\">del</a></td></tr>";
}
}
//-- als er geen geblokkerde ip adressen zijn
else
{
echo "<tr><td colspan=\"3\">Er zijn nog geen geblokkeerde ip adressen.</td></tr>";
}
echo "</table>";
}
}
?>
------------- block.php ------------------
<?
//-- eerst maken we dus de database connectie
$mysqluser = "mysql_user";
$mysqlpass = "mysql_pass";
$mysqlhost = "localhost";
$mysqldbdb = "mysql_database_naam";
if (!@mysql_select_db($mysqldbdb, @mysql_connect($mysqlhost, $mysqluser, $mysqlpass)))
{
echo "<b>error</b><p>";
echo "Er kon geen database connectie worden gemaakt.";
exit();
}
unset($mysqluser);
unset($mysqlpass);
unset($mysqlhost);
unset($mysqldbdb);
//-- defineer tabelnaam
$table = "ip_blocks";
//-- zet het IP adres van de bezoeker
$ipadres = $_SERVER['PHP_SELF'];
//-- bekijk de database of het IP adres ergens gevonden is
//-- dan heeft de bezoeker namelijk niet het recht om de
//-- pagina te bekijken..
$sql = "SELECT id FROM " . $table . " WHERE ip_adres = '" . $ipadres . "'";
$res = mysql_query($sql);
//-- bekijk of er een resultaat is, zo niet, doe dan niets
if (mysql_num_rows($res) >= 1)
{
//-- geef de block melding
echo "Je bent geblokkeerd op deze website.";
exit();
}
?>
Reacties
0