01 framework.php 中 获取请求的ip地址.保存为常量

define('IP', request::get_clientip());

02 setting表中.属于system模块,保存有ipbanned属性.对于的value是具体ip

cmstop.php 主程序执行前 _before_execute.读库配置,有禁止访问的ip时,遍历出所有ip,和当前请求的ip匹配. 提示禁止访问

$setting = setting('system');

if ($setting['ipbanned'])
{
$ipbanned = str_replace(array('*', '.'), array('[0-9]{1,3}', '\.'), $setting['ipbanned']);
$ipbanned = array_map('trim', explode("\n", $ipbanned));
foreach ($ipbanned as $ip)
{
   if (preg_match("/^$ip$/", IP)) $this->showmessage("Access Denied");
}
}

==========获取请求用户的ip --获取环境方法.远程地址 getenv('REMOTE_ADDR');

function get_clientip()
{
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) //str case cmp 字符串 案例 cmp减法比较  相等返回0 其他小于0或大于0
{
$ip = getenv('HTTP_CLIENT_IP');
}
elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown'))
{
$ip = getenv('HTTP_X_FORWARDED_FOR');
}
elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown'))
{
$ip = getenv('REMOTE_ADDR');
}
elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown'))
{
$ip = $_SERVER['REMOTE_ADDR'];
}
return preg_match("/[\d\.]{7,15}/", $ip, $matches) ? $matches[0] : 'unknown';
}

禁止 一些地区的ip用户访问 网站的更多相关文章

  1. Nginx禁止直接通过IP地址访问网站

    介绍下在nginx服务器禁止直接通过IP地址访问网站的方法,以避免别人恶意指向自己的IP,有需要的朋友参考下. 有时会遇到很多的恶意IP攻击,在Nginx下可以禁止IP访问. Nginx的默认虚拟主机 ...

  2. Nginx禁止IP直接访问网站

    禁止别人直接通过IP访问网站,在nginx的server配置文件前面加上如下的配置,如果有通过IP直接访问的,直接拒绝连接(需要去掉别的server下的default_server). server ...

  3. 从用户访问网站流程开始,细说web网络基础

    1.用户访问网站流程框架 2.dns解析原理 3.tcp/ip三次握手过程原理,11种连接状态 4.tcp/ip四次挥手过程原理,11种连接状态 5.http协议原理(www服务的请求过程)请求细节, ...

  4. SpringMVC拦截器实现:当用户访问网站资源时,监听session是否过期

    SpringMVC拦截器实现:当用户访问网站资源时,监听session是否过期 一.拦截器配置 <mvc:interceptors> <mvc:interceptor> < ...

  5. rabbitmq升级新版本后,需要新建用户。新版本默认禁止别的机器用guest用户访问。

    rabbitmq升级新版本后,需要新建用户.新版本默认禁止别的机器用guest用户访问.

  6. Nginx禁止直接通过IP地址访问网站以及限制IP登陆某目录(关闭默认站点或空主机头)

    这篇文章主要介绍了Nginx中禁止使用IP访问网站的配置实例,一般在备案时可能需要这种设置,需要的朋友可以参考下   国内因为备案的原因,所有服务器都要禁止使用IP访问网站.否则,如果允许使用IP访问 ...

  7. Laravel 5 如何实现网站在维护模式下允许指定 IP 用户访问(白名单)

    为了测试需要,有时候需要在网站处于维护模式下允许特定IP访问网站,在 Laravel 中,这可以通过为维护模式编写自定义中间件来实现. 默认情况下,Laravel 使用 CheckForMainten ...

  8. 为什么用IP无法访问网站,域名可以访问?

    我们访问网站都是通过域名进行访问的,偶尔会使用网站IP进行访问,如学校通常使用IP登录教务处,但很多的时候我们无法通过ip进行访问其他网站,这就涉及到服务器的问题了. 网站都是依托在服务器上面的,而服 ...

  9. Java 利用监听器来实现记录用户访问网站次数

    假如有这么一个需求,要记录所有用户访问某一页面的次数. 最先想到的可能是在该Controller定义一个静态成员,然后在相应Action里自增.但这样有一个问题,就是Tomcat或者其他服务器重启的话 ...

随机推荐

  1. Learning C# by Developing Games with Unity 5.x(2nd)

    项目:https://pan.baidu.com/s/1o7IMcZo using UnityEngine; using System.Collections; namespace VoidGame ...

  2. ubuntu 14.04 安装matlab2015b(破解版),具体软件请访问我的网盘~

    本文章转载自:http://www.cnblogs.com/ttzm/p/5475086.html 1.下载matlab的Unix版本:安装文件放在某目录下(如在Downloads下,则文件的完整路径 ...

  3. 浅谈MacOS-20155205郝博雅

    预备作业3:安装虚拟机 我的电脑是MacBook Air,因此按照娄老师说的,不需要安装Linix系统便能完成之后的学习.所以我就浅谈一下用MacOS系统的感受. 优点:人性化&便捷 与同系列 ...

  4. js--闭包的理解

    从技术上来讲,在JS中,每个function都是闭包,因为它总是能访问在它外部定义的数据. 当该内部函数在外部函数外被调用,就生成了闭包. 函数内部可以直接读取全局变量. 闭包就是能够读取其他函数内部 ...

  5. ORACLE 11g dblink 配置升级

    1.如果需要创建全局 DBLink,则需要先确定用户有创建 dblink 的权限: select * from user_sys_privs where privilege like upper('% ...

  6. 网页弹出窗口工具推荐之jqmodal

    各种在jquery基础上实现的弹出窗口,有详细的开发说明文档.在项目中快速实现网页中弹出窗口的需求.基本能满足各种弹出窗口的需求 其官方网址如下http://jquery.iceburg.net/jq ...

  7. Linux入门(四)linux运行环境mysql详细操作及安装phpmyadmin

    1.1 安装mysql(中间需要设定数据库的密码) sudo apt-get install mysql-serversudo apt-get install php5-mysql   #安装php5 ...

  8. JavaScript原生对象总纲

    一. javascript之Array类 创建js数组两种方式: var arr = [];  或var arr = new Array(); ()里可以指定长度,也可以不指定,指不指定都无所谓,因为 ...

  9. Java中需要总结的几个问题

    慢慢总结,不然每次百度挺心烦的. 1. java文件的读写 2. String和StringBuffer的区别

  10. $each $position $sort $slice

    $push 向数组中添加元素 $each 循环数据(循环添加数据到数组) $sort 对数组进行排序(1:升序:-1:降序.) $slice 对整个collection表进行数据裁减,用的时候一定要当 ...