浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法


Posted in PHP onJune 18, 2013

废话不多说,上代码

<?php
//查询禁止IP
$ip =$_SERVER['REMOTE_ADDR'];
$fileht=".htaccess2";
if(!file_exists($fileht))
 file_put_contents($fileht,"");
$filehtarr=@file($fileht);
if(in_array($ip."\r\n",$filehtarr))
 die("Warning:"."<br>"."Your IP address are forbided by some reason, IF you have any question Pls emill to shop@mydalle.com!");
//加入禁止IP
$time=time();
$fileforbid="log/forbidchk.dat";
if(file_exists($fileforbid)) { 
 if($time-filemtime($fileforbid)>60)
  unlink($fileforbid);
 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."\r\n",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;//防刷新时间
$allowNum=10;//防刷新次数
$uri=$_SERVER['REQUEST_URI'];
$checkip=md5($ip);
$checkuri=md5($uri);
$yesno=true;
$ipdate=@file($file);
foreach($ipdate as $k=>$v) { 
 $iptem=substr($v,0,32);
 $uritem=substr($v,32,32);
 $timetem=substr($v,64,10);
 $numtem=substr($v,74);
 if($time-$timetem<$allowTime) {
  if($iptem!=$checkip)
   $str.=$v;
  else {
   $yesno=false;
   if($uritem!=$checkuri) 
    $str.=$iptem.$checkuri.$time."1\r\n";
   elseif($numtem<$allowNum)
    $str.=$iptem.$uritem.$timetem.($numtem+1)."\r\n";
   else {
    if(!file_exists($fileforbid)) {
     $addforbidarr=array($ip."\r\n",time()."\r\n",1);
     file_put_contents($fileforbid,$addforbidarr);
    }
    file_put_contents("log/forbided_ip.log",$ip."--".date("Y-m-d H:i:s",time())."--".$uri."\r\n",FILE_APPEND);
    $timepass=$timetem+$allowTime-$time;
    die("Warning:"."<br>"."Sorry,you are forbided by refreshing frequently too much, Pls wait for ".$timepass." seconds to continue!");
   }
  }
 }
}
if($yesno) $str.=$checkip.$checkuri.$time."1\r\n";
file_put_contents($file,$str);
?>
PHP 相关文章推荐
PHP新手上路(六)
Oct 09 PHP
php adodb分页实现代码
Mar 19 PHP
php获取后台Job管理的实现代码
Jun 10 PHP
PHP句法规则详解 入门学习
Nov 09 PHP
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
Apr 10 PHP
PHP魔术方法__GET、__SET使用实例
Nov 25 PHP
php保存任意网络图片到服务器的方法
Apr 14 PHP
php提交过来的数据生成为txt文件
Apr 28 PHP
PHP简单实现上一页下一页功能示例
Sep 14 PHP
php删除二维数组中的重复值方法
Mar 12 PHP
PHP xpath()函数讲解
Feb 11 PHP
php 解析非标准json、非规范json
Apr 01 PHP
解析PHP计算页面执行时间的实现代码
Jun 18 #PHP
php实现简单洗牌算法
Jun 18 #PHP
php抽奖小程序的实现代码
Jun 18 #PHP
解析PHP生成静态html文件的三种方法
Jun 18 #PHP
解析PHP汉字转换拼音的类
Jun 18 #PHP
解析php中反射的应用
Jun 18 #PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
Jun 18 #PHP
You might like
老机欣赏|中国60年代精品收音机
2021/03/02 无线电
PHP实现视频文件上传完整实例
2014/08/28 PHP
Django 中 cookie的使用
2017/08/17 PHP
才发现的超链接js导致网页中GIF动画停止的解决方法
2007/11/02 Javascript
jQuery 定时局部刷新(setInterval)
2010/11/19 Javascript
基于jquery的15款幻灯片插件
2011/04/10 Javascript
Windows下用PyCharm和Visual Studio开始Python编程
2015/10/26 Javascript
各式各样的导航条效果css3结合jquery代码实现
2016/09/17 Javascript
用file标签实现多图文件上传预览
2017/02/14 Javascript
jQuery实现表格奇偶行显示不同背景色 就这么简单
2017/03/13 Javascript
详解node中创建服务进程
2017/05/09 Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
2018/03/13 Javascript
axios携带cookie配置详解(axios+koa)
2018/12/28 Javascript
js瀑布流布局的实现
2020/06/28 Javascript
antd Select下拉菜单动态添加option里的内容操作
2020/11/02 Javascript
[03:54]Ehome出征西雅图 回顾2016国际邀请赛晋级之路
2016/08/02 DOTA
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
2013/12/04 Python
使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤
2014/01/23 Python
Python使用Matplotlib实现雨点图动画效果的方法
2017/12/23 Python
Python用csv写入文件_消除空余行的方法
2018/07/06 Python
Pyqt5自适应布局实例
2019/12/13 Python
Python实现中值滤波去噪方式
2019/12/18 Python
Pytorch高阶OP操作where,gather原理
2020/04/30 Python
python输入中文的实例方法
2020/09/14 Python
美国一家运动专业鞋类零售商:Warehouse Shoe Sale(WSS)
2018/03/28 全球购物
navabi英国:设计师大码女装
2019/06/25 全球购物
Nayomi官网:沙特阿拉伯王国睡衣和内衣品牌
2020/12/19 全球购物
英语专业学子个人的自我评价
2013/10/02 职场文书
博士学位自我鉴定范文
2013/12/26 职场文书
满月酒答谢词
2014/01/14 职场文书
幼儿教师寄语集锦
2014/04/03 职场文书
幼儿园老师新年寄语2015
2014/12/08 职场文书
2015年毕业生个人自荐书
2015/03/24 职场文书
2015年女职工工作总结
2015/05/15 职场文书
商务宴会祝酒词
2015/08/11 职场文书
Win11 Build 21996.1 Dev版怎么样? win11系统截图欣赏
2021/11/21 数码科技