禁止单个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('禁止访问');
禁止单个IP或ip段访问的更多相关文章
- php中禁止单个ip与ip段访问的代码小结
1.禁止单个IP <?php //IP访问限制 if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP' ...
- php禁止某ip或ip地址段访问的方法(转载)
<?php include("banIP.php");?> 禁用单个ip如下:<?php //禁用ip地址 $ip=$_SERVER["REMOTE_A ...
- Oracle 使用sqlnet.ora/trigger限制/允许某IP或IP段访问指定用户
Oracle 使用sqlnet.ora/trigger限制/允许某IP或IP段访问指定用户 学习了:http://blog.itpub.net/28602568/viewspace-2092858/ ...
- [转帖]Oracle 使用sqlnet.ora/trigger限制/允许某IP或IP段访问指定用户
Oracle 使用sqlnet.ora/trigger限制/允许某IP或IP段访问指定用户 原创 Oracle 作者:maohaiqing0304 时间:2016-05-03 17:05:46 17 ...
- tftp 限制ip 限制ip段 或者多个ip段访问
1 限制单个ip访问 tftp 配置tftp信息 vi /etc/xinetd.d/tftp 在 service tftp配置信息中添加 only_form =ip 重启 service xinet ...
- iptables中规则的关系——以只允许某些IP段访问为例
最近遇到一个问题:服务器被全球的IP频繁试图通过ssh登录. 于是想到通过iptables防火墙限制访问,达到:仅允许指定ip段访问ssh服务(22端口). 关于iptables添加规则的文章有很多, ...
- nginx 限制及指定IP或IP段访问
nginx 限制及指定IP或IP段访问. location / { deny 192.168.1.1; allow ; allow ; deny all; } 企业问题案例:Nginx做反向代理的时候 ...
- 关于nginx限制IP或IP段的问题2011
关于nginx限制IP或IP段的问题2011-04-08 16:46:39 分类: LINUX 最近有同事问需要在nginx中针对一些IP和IP段限制访问,通过了解以下方法可以解决问题: 首先建立 ...
- Linux启动或禁止SSH用户及IP的登录
启动或禁止SSH用户登录 一般情况下,在使用Linux操作系统都不会去机房来操作机器,都是使用一些第三方的工具来操作. 比如使用SSH Secure File Transfer Client工具来传输 ...
- Java web 实现 之 Filter分析ip统计网站的访问次数
统计工作需要在所有资源之前都执行,那么就可以放到Filter中了. 我们这个过滤器不打算做拦截操作!因为我们只是用来做统计的. 用什么东西来装载统计的数据.Map<String,Integer& ...
随机推荐
- Java通过POI读取Excel
package com.hd.all.test.testjava; import java.io.File; import java.io.FileInputStream; import java.i ...
- 天猫京东app中常见的上下滚动轮播效果如何实现?
前段时间,公司安排我制作一个上下滚动轮播效果,类似于我们在天猫京东app中常见的这样: 哇kao!这个我完全不会呀??? 幸好,前几天一个朋友在朋友圈分享了一篇推文.瞬间引领我走出了迷茫,这个教程特别 ...
- Dockerfile详解(二)
Dockerfile文件详解 什么是dockerfile? Dockerfile是一个包含用于组合映像的命令的文本文档.可以使用在命令行中调用任何命令. Docker通过读取Dockerfile中的指 ...
- 把Web Services生成服务器端C#、VB。或者接口
什么是Web Services? Web Services 是应用程序组件 Web Services 使用开放协议进行通信 Web Services 是独立的(self-contained)并可自我描 ...
- 9.用js制作静态分页
效果如图: css 代码: #page { text-align: center; } .page { display: inline-block; } .page a { padding: 3px ...
- vue-lazyload的使用
1.下载依赖 npm install vue-lazyload --save 2.引入 import Vue from 'vue' import App from '@/App' import Vue ...
- laravel orm
###多对多关系 多对多关系和之前的关系完全不一样,因为多对多关系可能出现很多冗余数据,用之前自带的表存不下了. 我们定义两个模型:Article 和 Tag,分别表示文章和标签,他们是多对多的关系. ...
- django-pagination 样式修改
默认 django-pagination 样式: 使用bootstrap后样式: (有些瑕疵,下面来完善一下) 修改后: 效果还不错吧.那么讲下如何修改. 首先找到其源码: (路径:site-pac ...
- linux ~/ 和 /
/是目录层的分隔.表示符.只有一个/表明是root,/etc/表明是根目录下面的etc目录(当然目录最后不需要/,但有/直接表明他是目录,没有末尾的/,那么/etc需要检测一下确定是目录还是文件,虽然 ...
- hdu 5126 cdq+Treap+BIT
这题说的是给了三维空间然后操作 寻求在 x1,y1,z1 x2, y2, z2; (x1<x2, y1<y2,z1<z2) 计算出在 以这两个端点为右下和左上端点的方体内的点的 ...