İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

PHP + MySql IP Banlama Scripti

CSManager.NET

0
İyinet Üyesi
Katılım
20 Aralık 2010
Mesajlar
447
Reaction score
6
Konum
İstanbul
Merhaba arkadaşlar bir script için geliştirdiğim IP Banlama scriptini sizinle paylaşmak istedim.Şimdi başlıyoruz. İlk olarak php bağlantımızı yapalım.

baglan.php
PHP:
<?php
///
$host="localhost";
$kullanici="root";
$sifre="";
$database="db";
///
$link = mysql_connect("$host", "$kullanici", "$sifre") or die(mysql_error());
$db = mysql_select_db("$database", $link) or die (mysql_error());
?>

Bağlatımızı hallettik şimdi geldi sıra .sql e.

ban.sql
Kod:
CREATE TABLE IF NOT EXISTS `ban` (
  `ban_id` int(5) NOT lisanssız AUTO_INCREMENT,
  `ban_ip` varchar(25) NOT lisanssız,
  `saat` varchar(25) NOT lisanssız,
  `tarih` varchar(25) NOT lisanssız,
  PRIMARY KEY (`ban_id`),
  UNIQUE KEY `ban_id` (`ban_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

.sql de hazır şimdi verileri gireceğimiz bir form yapmamız gerekiyor.

banla.php
PHP:
<?php
include('baglan.php');
$bancalistir = mysql_query("select * from ban  order by ban_id");
$kac=mysql_num_rows($bancalistir); //kaç tane banlı IP olduğuna bakıyoruz
echo "<div class='ban'><div style='float:left'>Toplam Banlı IP: </div>"; 
echo '<div><b>'.$kac.'</b></div></div><div class="clr"></div>'; //banlı IP sayısını yazdırıyoruz
while($banoku=mysql_fetch_assoc($bancalistir))
  {
  ?>
<div><div style="float:left"><strong>BAN ID</strong>: </div>
<div style="float:left"><?php echo $banoku['ban_id']; ?></div>
<div style="float:left"><strong>BANLI IP: </strong></div>
<div><?PHP echo $banoku['ban_ip']; ?></div></div>
<div class="clr"></div><div class="clr"></div>
  <?PHP } //while döngüsü ile ban id ve banlı IPleri yazdırdık
?><br />
<?php echo '<div>Ban atmak için IP numarasını gir.</div>
<div>Ban silmek için ID numarasını gir.</div>
'; ?>
<form name="ip_ban" method="get" action="banning.php" >
 <input type="text" name="ban_ip" />
<input type="submit" value="Banla" />
</form>
<form name="ip_ban_sil" method="get" action="banning.php" >
 <input type="text" name="ban_id_sil" />
<input type="submit" value="Ban Sil" />
</form>

şimdi veri girdik veya veri sildik. Scriptimiz her iki özelliğide kapsıyor. Ben metod olarak get kullandım isterseniz post olarak gerekli düzenlemeri siz yapabilirsiniz. Yönlendirme yaptığım banning.php ye bir bakalım.

banning.php
PHP:
<?php
include('baglan.php');
$ban_ip 		= $_GET['ban_ip'];
$ban_id_sil 		= $_GET['ban_id_sil'];
$saat 		= date("H:i",(time()+0)); //bu seçenek değişebilir saat bazen Türkiye saatini göstermiyor olabilir ona göre 0 yerine 3600 (1saat) ekleyip yada çıkartabilirsiniz.
$tarih			= date("d.m.Y"); //tarih bilgilerini rakam olarak girer. örn: 13.08.2011
if ($ban_ip==0) { //buradaki mantık size kalmış o zaman daha az bilgiye sahiptim ve böyle bir mantıkla yol almışım
	echo  ""; }
	else {
$ban = mysql_query("insert into ban (ban_id, ban_ip, saat, tarih) values (lisanssız, '$ban_ip', '$saat', '$tarih')"); }
if ($ban_id_sil==0){ //buradaki mantık size kalmış o zaman daha az bilgiye sahiptim ve böyle bir mantıkla yol almışım
 echo ""; }
 else {
$bansil = mysql_query("delete from ban where ban_id='$ban_id_sil'");}

echo "Listeye Yönlendiriliyorsunuz...<meta http-equiv='refresh' content='3;URL=index.php' />"
?>

IPleri banladık yada banını sildik şimdi sırada ziyaretçi eğer banlandıysa ne olacak?

index.php
PHP:
<?php
include('baglan.php');

$ziyaretci_ip = $_SERVER['REMOTE_ADDR']; //bu ziyaretçi IPmiz. localhostta denerseniz gerçeği yansıtmayacaktır. örn:127.0.0.0 olarak gösterir
$kontrol=mysql_query("select * from ban where ban_ip='$ziyaretci_ip'"); //ziyaretçi IPmizin banlı olup olmadığını sorar

$ban_var_mi=mysql_num_rows($kontrol); //burda yaptığımız işlem sayma işlemidir. Eğer ban varsa sayım 1 veya fazla çıkacaktır.
if ($ban_var_mi >= 1) { 
echo 'Banlandınız'; }
else {
	  echo 'Banlanmadınız.'; } ?>

PHP + MySql IP Banlama Scripti
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst