禁止单个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& ...
随机推荐
- 天气服务API文档 第1版
HTTP接口设计文档 此文档为开发HTTP接口的设计文档,目前用于提供天气查询的相关接口. 测试的时候使用 URL=http://www.dennisthink.com/test/api/weathe ...
- bat脚本简单命令
1.if 判断 (1.1)判断字符串是否为空: if "%var1%" == " " ( echo null) else(echo not null ) (1. ...
- [LeetCode] 590. N-ary Tree Postorder Traversal_Easy
Given an n-ary tree, return the postorder traversal of its nodes' values. For example, given a 3-ary ...
- APP网络优化篇
Android Addresses are cached for 600 seconds (10 minutes) by default. Failed lookups are cached for ...
- windows系统上利用putty通过SSH连接亚马逊AWS服务器
1. 找到在购买亚马逊的AWS服务器时保存的密钥文件(假设为abc.pem). 2.打开PuTTYgen,如下图,点击图中1处的“load”,找到abc.pem文件所在的位置,并选择abc.pem,确 ...
- Selenium基础知识(二)鼠标操作
一.鼠标操作 这个需要使用webdriver下的ActionChains类,这个类是操作鼠标操作的: from selenium.webdriver import ActionChains 鼠标操作可 ...
- ideal使用eclipse快捷键
1.修改使用Eclipse风格的快捷键目的是习惯了使用eclipse的快捷键,在使用IDEA时不想重头记一套新的快捷键.按照下面的顺序操作File --> settings --> key ...
- 03-树2 List Leaves(25)
题目 分析 输入先给出结点的数量,把结点从0开始标号,每一行给出结点的左右两个子节点,-表示子节点不存在. 很容易分析出在子节点中没有出现的就是根节点,两个子节点都为空的是叶子节点 先建树,然后从ro ...
- Yii2开发小技巧
工作中或多或少会用到的关于 Yii2 的小技巧的一个总结,包括model.controller.view或者配置文件的一些写法. 模型相关 获取查询SQL $query = User::find()- ...
- Math对象属性
2018-11-28 11:18:46