• 08-02-2010, 19:55:47
    #1
    Bu scriptin amacı eğer bir sitedeki bir ip dakikada 40 link açıyorsa onu direk belirlediğiniz sayfaya yönlendiyor yada belirlediğiniz bir yazı ona çıkıyor...

    İş Başa Düştü Yine

    flood.php

    <?php
    include("connect.php");
    $a = (int)date("i");
          $ip = $_SERVER['REMOTE_ADDR']; 
          $exec = mysql_query("insert into tbllog(ip,tarih) values('$ip','$a')");
          $z = $a-1;
          $q = mysql_query("select * from tbllog where ip='$ip' and tarih >='$z'");
          if(mysql_num_rows($q)>=40)
          {
             $ban = mysql_query("insert into tblbanlist(ip) values('$ip')");
             if($ban)
             {
                header('Location: banned.php');
             }
          }
          $q2 = mysql_query("select * from tblbanlist where ip='$ip'");
          if(mysql_num_rows($q2)>=40)
          {
                header('Location: banned.php');
          }
             
          $settime = "00:00";
          $gettime = date("h:i");
          if($gettime==$settime)
          {
             $trunlog = mysql_query("truncate table tbllog");
             if($trun)
             {
                header('Location: banned.php');
             }
          }
          $setday = "15";
          $a = date("d");
             if($setday==$a)
             {
                $trunban = mysql_query("truncate table tblbanlist");
                if($trunban)
                {
                   header('Location: banned.php');
                }
             }
    ?>
    connect.php
    <?
    	$connect=mysql_connect("localhost","byfresh","123456")
    	or die("Veritabanina baglanilamadi. Lütfen daha sonra tekrar deneyin...");
    	mysql_select_db("byfresh",$connect)
    	
    
    
    	or die("Tablo seçilemedi. Lütfen daha sonra tekrar deneyin...");
    	
    
    	
    ?>
    veritabani.sql

    CREATE TABLE `tblbanlist` (
      `id` int(11) NOT NULL auto_increment,
      `ip` varchar(50) collate utf8_turkish_ci NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci AUTO_INCREMENT=5 ;
    CREATE TABLE `tbllog` (
      `id` int(11) NOT NULL auto_increment,
      `ip` varchar(50) collate utf8_turkish_ci NOT NULL,
      `tarih` varchar(50) collate utf8_turkish_ci NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci AUTO_INCREMENT=80 ;
    banned.php
    Burayı İstediginiz gibi Düzenleyin örnek: Banlandınız giremezsiniz yada yasaklandınız gibi bir resim...


    İlk Mesaj Düzenlenmiştir...
    Kendi Sorunumu Kendim Çözdüm...
    Yardımcı Olmak İsteyen Arkadaşlara Yinede Teşekkürler...
    Sorun Halledilmiştir...
    Sizlerde Kullanabilirsiniz...

    Not: flood.php içindeki 40 değerini dilerseniz 50 yaparsınız yada 100 yaparsınız okadar tıklama değeri oluşmuş olur...
    Böylelikle Syn atacklara Karşıda Önlem Almış Olursunuz...
    Banlanan Kişi 15 Gün Yasaklanmış Olur ( İp Nodan)
    flood.php içindeki:
    $setday = "15";
    $a = date("d");
    if($setday==$a)

    15 Değeri Cogaltırsanızda örnek: 30 yaparsanızda 30günlük banlanmış olur...

    $settime = "00:00";
    $gettime = date("h:i");
    if($gettime==$settime)

    Her Gece Saat 00.00'da yeniden başlat komutu ile eger bir ip no gün içerisinde 35 sefer tıklamışsa siteyi 40'a ulaştıgında banlanmaması için 00.00'da siliniyor ve güne yeniden 1-2-3 tıklama diye sayarak başlıyor... ama Gün İçerisinde 40 defa F5 yapıyorsa sayfada yada tıklıyorsa eger yazılan banlanma değeri (flood.php icindeki 40) 40 ise banlanıyor ve sgl'ye kaydediler ip nosu...
  • 08-02-2010, 22:23:49
    #2
    Vayyyyy işte bu ya
    Botlara karşı oldukça güzel bir yol
    Beğendim ya + rep
  • 08-02-2010, 23:36:22
    #3
    Ama şöyle birşey var sitemizde arama motoru botları için extra bir üyelik grubu açıp onları o gruba dahil etmeli ve onları bu flood korumasından kurtarmalıyız bunuda unutmayalım
  • 09-02-2010, 01:13:06
    #4
    ilk mesajıma ekledim sorunu çözdüm... fakat bunu mdb yada .txt e kaydettirmek lazım mysglde kasar cok ip olunca...
  • 09-02-2010, 09:46:38
    #5
    Üyeliği durduruldu
    Byfresh adlı üyeden alıntı: mesajı görüntüle
    ilk mesajıma ekledim sorunu çözdüm... fakat bunu mdb yada .txt e kaydettirmek lazım mysglde kasar cok ip olunca...
    txt mysql den cokta farkli kasmaz mantik olarak