lostyazilim
tr.link

PHP + MySql IP Banlama Scripti

3 Mesajlar 3.585 Okunma
acebozum
tr.link

cmltskrn cmltskrn WM Aracı Kullanıcı
  • Üyelik 13.08.2011
  • Yaş/Cinsiyet 28 / E
  • Meslek Öğrenci
  • Konum İstanbul Anadolu
  • Ad Soyad C** T**
  • Mesajlar 179
  • Beğeniler 32 / 46
  • Ticaret 0, (%0)
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
///
$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
CREATE TABLE IF NOT EXISTS `ban` (
`ban_id` int(5) NOT NULL AUTO_INCREMENT,
`ban_ip` varchar(25) NOT NULL,
`saat` varchar(25) NOT NULL,
`tarih` varchar(25) NOT NULL,
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

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 "
Toplam Banlı IP:
";
echo '
'.$kac.'
'; //banlı IP sayısını yazdırıyoruz
while($banoku=mysql_fetch_assoc($bancalistir))
{
?>
BAN ID


BANLI IP: 



?>

Ban atmak için IP numarasını gir.

Ban silmek için ID numarasını gir.

'; ?>

 



 



ş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
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 (NULL, '$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..."
?>


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

index.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
 

 

elektronikssl
webimgo

Sinan Sinan Grana Kullanıcı
  • Üyelik 18.07.2011
  • Yaş/Cinsiyet 31 / E
  • Meslek Yazılım Geliştirme Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad S** Y**
  • Mesajlar 3509
  • Beğeniler 1321 / 1320
  • Ticaret 97, (%100)
Güzel bir çalışma olmuş, tebrikler.
 

 

cmltskrn cmltskrn WM Aracı Kullanıcı
  • Üyelik 13.08.2011
  • Yaş/Cinsiyet 28 / E
  • Meslek Öğrenci
  • Konum İstanbul Anadolu
  • Ad Soyad C** T**
  • Mesajlar 179
  • Beğeniler 32 / 46
  • Ticaret 0, (%0)

Sinan YORULMAZ adlı üyeden alıntı

Güzel bir çalışma olmuş, tebrikler.


Teşekkür ederim
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al