禁止单个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& ...
随机推荐
- docker 在宿主机上根据进程PID查找归属容器ID
在使用docker时经常出现一台docker主机上跑了多个容器,可能其中一个容器里的进程导致了整个宿主机load很高,其实一条命令就可以找出罪魁祸首 #查找容器ID docker inspect -f ...
- gerrit上的commit msg中关联jira单号(含gerrit的安装)
这个问题折腾了很久,前期后后大概一个月吧,终于搞定了,查了很多资料,有的不完整,有的完全就不能用,有的没说完整,所以一定要记录下来,我的心血啊. 由于公司在用的gerrit的是正式环境中的,大家都在使 ...
- [LeetCode] 153. Find Minimum in Rotated Sorted Array_Medium tag: Binary Search
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e. ...
- php 获取 mime type 类型,fileinfo扩展
背景: version < php-5.3 没有API能够查看文件的 mime_type, 故需要编译扩展 fileinfo 来扩展PHP的API(finfo_*系列函数).php-5.3 以后 ...
- Linux和windows 查看程序、进程的依赖库的方法
Linux: 1. 利用ldd查看可执行程序的依赖库 [root@~]# ldd /usr/local/php/bin/php linux-vdso.so.1 => (0x00007ff ...
- 第一次使用theos自己遇到的坑
这里自己遇到的一些问题,总结一下: 第一个问题建立好theos工程后make出现 xcrun: error: SDK "iphoneos" cannot be located xc ...
- 从0开始搭建vue+webpack脚手架(二)
接着从0开始搭建vue+webpack脚手架(一) 三.配置webpack-dev-server 1. webpack-dev-server自带一个node的服务器, 项目在服务端运行的同时可以实现热 ...
- css3d旋转
一.包裹层添加 -webkit-perspective: 800px; -moz-perspective: 800px; 使子元素获得3D效果支持 二.自持子元素需支持3D效果 -webkit-t ...
- uvm设计分析——factory
uvm的factory机制,通过实例一个static类型default factory,并且通过宏将所有例化extend出来的object,component register到该factory的内部 ...
- <4>Cocos Creator基本概念(场景树 节点 坐标 组件 )
1.场景树 Cocos Creator是由一个一个的游戏场景组成,场景是一个树形结构,场景由 有各种层级关系的节点(下一节有具有介绍)组成: 如创建一个HelloWorld的默认项目NewProjec ...