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

来源:互联网 发布:大禹 知乎 编辑:程序博客网 时间:2024/05/22 15:35
php禁止单IP访问的代码。
<?php //加单个IP访问限制//by 脚本学堂 http://www.jbxue.comif(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(); } ?> 

原创粉丝点击