今日、私は次のコードを開発しました。これは成功したと考えられます。1 日で 15 個の IP をインターセプトし、サーバーの負荷は正常でした。
コードをコピー コードは次のとおりです:
//禁止された IP をクエリ
$ip =$_SERVER['REMOTE_ADDR']
$fileht=".htaccess2"; ))file_put_contents($fileht,"");
$filehtarr=@file($fileht);
if(in_array($ip."rn",$filehtarr))die("警告:"."
"."あなたの IP アドレスは何らかの理由で禁止されています。ご質問がある場合は shop@mydalle.com までお問い合わせください!");
//禁止された IP を追加
$time= time();
$fileforbid="log/forbidchk.dat";
if(file_exists($fileforbid))
{ if($time-filemtime($fileforbid)>60)unlink($ファイル禁止);
else{
$fileforbidarr=@file($fileforbid);
if($ip==substr($fileforbidarr[0],0,strlen($ip));
{
if($time-substr($fileforbidarr[1],0,strlen($time))>600)unlink($fileforbid);
elseif($fileforbidarr[2]>600){ file_put_contents($fileht,$ip."rn",FILE_APPEND);unlink($fileforbid);}
else{$fileforbidarr[2]++;file_put_contents($fileforbid,$fileforbidarr);}
}
}
}
//アンチリフレッシュ
$str="";
$file="log/ipdate.dat";
if(!file_exists("log") && !is_dir("log"))mkdir("log",0777);
if(!file_exists($file))file_put_contents($file,"");
$allowTime = 120; -refresh Time
$allowNum=10; //アンチリフレッシュ回数
$uri=$_SERVER['REQUEST_URI'];
$checkip=md5($ip); =md5($uri );
$ipdate=@file($file);
foreach($ipdate as $k=>$v)
{ $iptem =substr($v,0,32);
$uritem=substr($v,32,32);
$timetem=substr($v,64,10); ($v,74 );
if($time-$timetem<$allowTime){
if($iptem!=$checkip)$str.=$v;
else{
$はいいいえ = false;
if($uritem!=$checkuri)$str.=$iptem.$checkuri.$time."1rn";
elseif($numtem<$allowNum)$str.=$iptem .$uritem.$ timetem.($numtem+1)."rn";
else
{
if(!file_exists($fileforbid)){$addforbidarr=array($ip."rn") ,time(). "rn",1);file_put_contents($fileforbid,$addforbidarr);}
file_put_contents("log/forbided_ip.log",$ip."--".date("Y-m-d H:i) :s",time ())."--".$uri."rn",FILE_APPEND);
$timepass=$timetem+$allowTime-$time;
die("警告:"."< ;br>". "申し訳ありませんが、頻繁に更新することは禁止されています。続行するには ".$timepass." 秒間お待ちください!");
}
}
}
}
if($ yesno) $str.=$checkip.$checkuri.$time."1rn";
file_put_contents($file,$str);
;
処理対象のphpファイルの先頭にプログラムをインクルードします。
プログラムはまず IP が禁止リストに含まれているかどうかを判断し、含まれている場合は終了します。
それ以外の場合、IP が監視リストに含まれており、10 分以内に 600 回以上クリックされると、その IP は監視リストに追加されます。禁止リスト。
時間と回数を超えていない場合は、数値を 1 つ増やします。同時に、IP が同じページで頻繁に動作するかどうかを監視します。