禁止单个IP或ip段访问

    //IP禁止判断接口,返回true则为找到
    function checkIp($ip, $ipbanned)
    {
        $ipbannedFlag = false;
        if (!empty($ipbanned)) {
            foreach ($ipbanned as $data) {
                if (strpos($data, ‘*‘)) {
                    $ip_min = convert_ip("min", $data);
                    $ip_max = convert_ip("max", $data);
                    $result = ipforbidden($ip, $ip_min, $ip_max);
                    if ($result == 1) {
                        //找到
                        $ipbannedFlag = true;
                        break;
                    }
                } else {
                    if ($ip == $data) {
                        //找到
                        $ipbannedFlag = true;
                        break;
                    }
                }
            }
        }
        return $ipbannedFlag;
    }

    function convert_ip($op, $ip)
    {
        $arr_ip = explode(".", $ip);
        $arr_temp = array();
        $i = 0;
        $result = ‘‘;
        $ip_val = $op == "max" ? "255" : "1";
        foreach ($arr_ip as $key => $val) {
            $i++;
            $val = $val == "*" ? $ip_val : $val;
            $arr_temp[] = $val;
        }
        for ($i = 4 - $i; $i > 0; $i--) {
            $arr_temp[] = $ip_val;
        }
        $comma = "";
        foreach ($arr_temp as $v) {
            $result .= $comma . $v;
            $comma = ".";
        }
        return $result;
    }

    //判断IP是否被限并返回
    function ipforbidden($ip, $ip_from, $ip_to)
    {
        $from = strcmp(ip2long($ip), ip2long($ip_from));
        $to = strcmp(ip2long($ip), ip2long($ip_to));
        if ($from >= 0 && $to <= 0) {
            return 1;
        } else {
            return 0;
        }
    }

  
    //使用方法
        $ipbanned = [
            ‘61.135.165.*‘,
            ‘61.135.186.*‘,
            ‘127.0.0.1‘,
        ];
        $user_ip = ‘127.0.0.1‘;
        $result = checkIp($user_ip, $ipbanned);
        if ($result) exit(‘禁止访问‘);

原文地址:https://www.cnblogs.com/-mrl/p/8278002.html

时间: 2024-10-17 20:47:08

禁止单个IP或ip段访问的相关文章

php中禁止单个ip与ip段访问的代码小结

1.禁止单个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

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

在需要禁止访问或提交表单的页面添加下面的代码进行判断就可以了. 注意:下边只是一个PHP限制IP的实例代码,如果您打算应用到CMS中,请自行修改. <?php /加IP访问限制 if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { $userip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR

tftp 限制ip 限制ip段 或者多个ip段访问

1 限制单个ip访问 tftp 配置tftp信息 vi /etc/xinetd.d/tftp 在 service tftp配置信息中添加  only_form =ip 重启 service xinetd restart 则只有 单个ip 的机器能访问此ftp服务 2 限制一个ip段访问 tftp 配置tftp信息 vi /etc/xinetd.d/tftp 在 service tftp配置信息中添加  only_form = ip段(例如 100.2.29.0/24) 重启 service xi

iptables中规则的关系——以只允许某些IP段访问为例

最近遇到一个问题:服务器被全球的IP频繁试图通过ssh登录. 于是想到通过iptables防火墙限制访问,达到:仅允许指定ip段访问ssh服务(22端口). 关于iptables添加规则的文章有很多,而鲜有介绍规则之间的顺序.因此希望通过这篇文章介绍iptables多条规则之间是如何协同工作的. 注:作者并没有在此投入很多时间调研,因而以下仅仅是个人理解,有错误之处希望不吝指出. 假设希望仅仅允许 111.111.0.0/16 IP段ssh登录,而禁止其他所有ip登录. 最简单的命令是: ipt

php禁用某ip或者ip地址段访问

因为还没有深入学习Apache和nginx 所以用PHP写了一个可以禁用地址的小程序 用法 <?php include("banIP.php");?>即可 禁用单个ip: <?php //禁用ip地址 $ip=$_SERVER["REMOTE_ADDR"]; $ban=file_get_contents("ban.dat"); if(stripos($ban,$ip)) { die("Your IP Address i

java 限定网站在指定IP段访问

贴代码 IpUtil.java package com.datongsoft.wg.common.util; import java.net.InetAddress; import java.net.UnknownHostException; public class IpUtil { /*验证IP是否属于某个IP段 * * ipSection IP段(以'-'分隔) * ip 所验证的IP号码 * */ public static boolean ipExistsInRange(String

nginx禁止IP只允许域名访问

upstream jenkins{ server 127.0.0.1:8080; } server { listen 80 default; #配置此段表示用IP或其他域名访问时跳转到www.baidu.com server_name _; rewrite ^ http://www.baidu.com$request_uri?; } server { listen 80; server_name www.twjenkins.com; #写多一个server配置自定义的域名 location /

Java web 实现 之 Filter分析ip统计网站的访问次数

统计工作需要在所有资源之前都执行,那么就可以放到Filter中了. 我们这个过滤器不打算做拦截操作!因为我们只是用来做统计的. 用什么东西来装载统计的数据.Map<String,Integer> 整个网站只需要一个Map即可! Map什么时候创建(使用ServletContextListener,在服务器启动时完成创建,并只在到ServletContext中),Map保存到哪里!(Map保存到ServletContext中!!!) Map需要在Filter中用来保存数据 Map需要在页面使用,

用ip代替机器名访问sharepoint 站点

1. aam 里加入一个ip的internet 2. iis里不用加上ip,但不要有host name   出现的问题: 1. 当打开站点里会出现这个错误 file not found 2. 当加授予用户权限时,用户加不上去: Sorry, we're having trouble reaching the server 用ip代替机器名访问sharepoint 站点,布布扣,bubuko.com

老男孩教育每日一题-2017年4月26日-通过访问日志access.log统计IP和每个地址访问的次数

通过访问日志access.log统计IP和每个地址访问的次数 101.226.61.184 - - [22/Nov/2015:11:02:00 +0800] "GET /mobile/sea-modules/gallery/zepto/1.1.3/zepto.js HTTP/1.1" 200 24662 "http://m.oldboyedu.com/mobile/theme/oldboyedu/home/index.html" "Mozilla/5.0