热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php防止单ip攻击代码,php防止ddos攻击

本文目录一览:1、php高手来,求禁止ip并且转发url代码

本文目录一览:


  • 1、php高手来,求禁止ip并且转发url代码


  • 2、求一段PHP限制IP及IP段访问的代码,拜托了。。


  • 3、有人用软件反复向我的网站post请求,php程序如防止来自同一IP的攻击?


  • 4、PHP中限制IP段访问、禁止IP提交表单的代码


  • 5、限制ip地址段访问的php代码

php高手来,求禁止ip并且转发url代码

?php

//加IP访问限制

if(getenv('HTTP_CLIENT_IP') strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {

$userip = getenv('HTTP_CLIENT_IP');

} elseif(getenv('HTTP_X_FORWARDED_FOR') strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {

$userip = getenv('HTTP_X_FORWARDED_FOR');

} elseif(getenv('REMOTE_ADDR') strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {

$userip = getenv('REMOTE_ADDR');

} elseif(isset($_SERVER['REMOTE_ADDR']) $_SERVER['REMOTE_ADDR'] strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {

$userip = $_SERVER['REMOTE_ADDR'];

}

$ip_arr = explode('.', $userip);

#限制的ip段,假设是192.168.*.*

if (!(($ip_arr[0] == '192' $ip_arr[1]=='168') )){

header("");

exit;

}else

{

header("");

exit;

}

?

求一段PHP限制IP及IP段访问的代码,拜托了。。

正确代码

function check_ip(){

$ALLOWED_IP=array('192.168.2.*','127.0.0.1','192.168.2.49');

$IP=getIP();

$check_ip_arr= explode('.',$IP);//要检测的ip拆分成数组

#限制IP

if(!in_array($IP,$ALLOWED_IP)) {

foreach ($ALLOWED_IP as $val){

if(strpos($val,'*')!==false){//发现有*号替代符

$arr=array();//

$arr=explode('.', $val);

$bl=true;//用于记录循环检测中是否有匹配成功的

for($i=0;$i4;$i++){

if($arr[$i]!='*'){//不等于* 就要进来检测,如果为*符号替代符就不检查

if($arr[$i]!=$check_ip_arr[$i]){

$bl=false;

break;//终止检查本个ip 继续检查下一个ip

有人用软件反复向我的网站post请求,php程序如防止来自同一IP的攻击?

无论使用PHP还是Apache(.htaccess)的手段,这个IP的请求还是被彻底执行了。CPU还是被占用了,虽然可能会占用的稍微少一点。

所以通过服务器设置,比如在Linux使用iptables防火墙。或者使用其他的前置的硬件防火墙。过滤这种同一IP在短时间内的不间断访问。这才是有效的手段。

PHP中限制IP段访问、禁止IP提交表单的代码

我们只要在feedback.php中添加下面的代码进行判断就可以了。

注意:下边只是一个PHP限制IP的实例代码,如果您打算应用到CMS中,请自行修改,或者如果您正在使用DEDECMS,可以联系本站。

代码如下:

?php

//加IP访问限制

if(getenv('HTTP_CLIENT_IP')

strcasecmp(getenv('HTTP_CLIENT_IP'),

'unknown'))

{

$userip

=

getenv('HTTP_CLIENT_IP');

}

elseif(getenv('HTTP_X_FORWARDED_FOR')

strcasecmp(getenv('HTTP_X_FORWARDED_FOR'),

'unknown'))

{

$userip

=

getenv('HTTP_X_FORWARDED_FOR');

}

elseif(getenv('REMOTE_ADDR')

strcasecmp(getenv('REMOTE_ADDR'),

'unknown'))

{

$userip

=

getenv('REMOTE_ADDR');

}

elseif(isset($_SERVER['REMOTE_ADDR'])

$_SERVER['REMOTE_ADDR']

strcasecmp($_SERVER['REMOTE_ADDR'],

'unknown'))

{

$userip

=

$_SERVER['REMOTE_ADDR'];

}

//限制ip

if

($userip=='27.37.188.128'){

header("location:");//被禁止后跳转到脚本之家站

exit;

}

//限制ip段

$ip_arr

=

explode('.',

$userip);

#限制的ip段,假设是192.168.*.*

if

(!(($ip_arr[0]

==

'192'

$ip_arr[1]=='168')

)){

header("location:");//被禁止后跳转到脚本之家素材站

exit;

}else{

header("location:");//正常IP则直接访问脚本之家首页

exit;

}

?

限制ip地址段访问的php代码

?php

$userip = $_SERVER['REMOTE_ADDR']; //获得用户ip

$userips = explode(".", $userip);//把获得的ip切开成数组

if(($userips[0]=195 $userips[0]=195)($userips[1]=163 $userips[1]=163)($userips[2]=079 $userips[2]=072)($userips[3]=255 $userips[3]=000)){

echo "您的ip不符!";

exit;

}else{

echo "通过验证!";

}

?

我的思路就是这样的

获得用户的IP 用"."分割成数组

再将 限制IP断 分别用"."分割成数组

然后判断用户IP是否在这个IP断内(分别判断四个元素是否在这个范围里)

……

下面是蓝色理想里找到的一个供你参考

——————————————————

?php

class IP{ //获取客户IP地址

function getIpAdr($ ip){

$ ip1=getenv("HTTP_X_FORWARDED_FOR");

$ ip2=getenv("HTTP_CLIENT_IP");

$ ip3=getenv("REMOTE_ADDR");

if($ ip1$ ip1!='unknow')

$ ip=$ ip1;

else if($ ip2$ ip2!='unknow')

$ ip=$ ip2;

else if($ ip3$ ip3!='unknow')

$ ip=$ ip3;

else

$ ip='127.0.0.1';

}

}

function get_netip($ myip){ //只留客户IP地址的前三位

$ temp=explode(".",$ myip);

$ netip.=$ temp[0];

$ netip.=".";

$ netip.=$ temp[1];

$ netip.=".";

$ netip.=$ temp[2];

return $ netip;

}

$ filename="test.ini"; //定义操作文件

$ ip_lib=file($ filename); //读取文件数据到数组中

$ allow=0;

$ IP=new IP;

$ thisip="";

$ IP-getIpAdr($ thisip);

$ thenetip=get_netip($ thisip);

for($ i=0;$ icount($ ip_lib);$ i++){

if(ereg($ thenetip,$ ip_lib[$ i])){

$ allow=1;

break;

}

}

if ($ allow==1)

{

echo "验证通过";

}

else {

echo "scriptlocation.href='Error.php';/script";

}

?


推荐阅读
  • 包含phppdoerrorcode的词条 ... [详细]
  • 深入探索HTTP协议的学习与实践
    在初次访问某个网站时,由于本地没有缓存,服务器会返回一个200状态码的响应,并在响应头中设置Etag和Last-Modified等缓存控制字段。这些字段用于后续请求时验证资源是否已更新,从而提高页面加载速度和减少带宽消耗。本文将深入探讨HTTP缓存机制及其在实际应用中的优化策略,帮助读者更好地理解和运用HTTP协议。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 作为软件工程专业的学生,我深知课堂上教师讲解速度之快,很多时候需要课后自行消化和巩固。因此,撰写这篇Java Web开发入门教程,旨在帮助初学者更好地理解和掌握基础知识。通过详细记录学习过程,希望能为更多像我一样在基础方面还有待提升的学员提供有益的参考。 ... [详细]
  • 华为捐赠欧拉操作系统,承诺不推商用版
    华为近日宣布将欧拉开源操作系统捐赠给开放原子开源基金会,并承诺不会推出欧拉的商用发行版。此举旨在推动欧拉和鸿蒙操作系统的全场景融合与生态发展。 ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • 本文详细介绍了如何在Linux系统(以CentOS为例)上彻底卸载Zimbra邮件系统,包括停止服务、删除文件和用户等步骤。 ... [详细]
  • Linux下MySQL 8.0.28安装指南
    本文详细介绍了在Linux系统上安装MySQL 8.0.28的步骤,包括下载数据库、解压数据包、安装必要组件和启动MySQL服务。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 深入解析Android 4.4中的Fence机制及其应用
    在Android 4.4中,Fence机制是处理缓冲区交换和同步问题的关键技术。该机制广泛应用于生产者-消费者模式中,确保了不同组件之间高效、安全的数据传输。通过深入解析Fence机制的工作原理和应用场景,本文探讨了其在系统性能优化和资源管理中的重要作用。 ... [详细]
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • 本文详细介绍了在 React Native 开发过程中遇到的 'Could not connect to development server' 错误及其解决方法。该问题不仅影响开发效率,而且难以通过网络资源找到确切的解决方案。本文将提供详细的步骤,帮助开发者快速解决这一常见问题。 ... [详细]
author-avatar
V体验_数码IT
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有