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