php禁止单IP、IP段访问的实现代码

本文详细介绍了如何使用PHP代码限制单个IP和IP段的访问,包括通过环境变量获取客户端IP,判断是否在黑名单中,并提供了一个限制IP段访问的函数示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

php禁止单IP访问的代码。
<?php 
//加单个IP访问限制
//by 脚本学堂 http://www.jbxue.com
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']; 
} 
$banned_ip = array ( 
"127.0.0.1", 
"203.0.0.1", 
"56.12.50.65", 
"192.168.1.88" 
); 
if (in_array($userip,$banned_ip)) 
{ 
die ("未经授权的访问!"); 
} 
echo "good!!!"; 
?> 

有时,我们也可以写一个函数来限制IP的访问,比如这篇 php禁止ip访问的函数 ,提供了更丰富的功能实现。

最折腾的人,是一个IP段的不同地址来复制你的文章或恶意扫描,此时可以考虑用封锁IP段的方法。代码如下。

<?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']; 
} 
$ban_range_low=ip2long("217.0.0.0"); //ip段上 
$ban_range_up=ip2long("217.255.255.255");//ip段尾 
$ip=ip2long($userip]); 
if ($ip>$ban_range_low && $ip<$ban_range_up) 
{ 
print "Banned"; 
exit(); 
} 
?> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值