PHP制作登录异常ip检测功能的实例代码


Posted in PHP onNovember 16, 2016

使用函数查询数据库遍历实现

/**
 * 不在常用ip地址登录返回描红信息
 * @param string $ip  ip地址
 * @param string $name  用户名
 * @return string
 */

function errorIp($ip,$name){

  $nowip = get_client_ip();
  //判断ip和当前ip是否相同,不同则查询数据库对比
  if($ip == $nowip ){
    //相同直接返回字符串
    $str = '<font color="blue"'.">登录IP:".$ip."</font>";
  }else{
    //不同则记数这个ip地址数量
    $count =  M('log')->where("name='{$name}' AND ip='{$ip}'")->count();
    //如果超过一定数量则是正常ip否则为异常返回字符串
    if($count > 10){
      $str = '<font color="blue"'.">登录IP:".$ip."</font>";
    }else{
      $str = '<font color="red"'.">异常IP:".$ip."</font>";
    }
  }

  return $str;

}

注释:适合所有框架使用,get_client_ip()是ip获取函数。

get_client_ip函数片段:

function get_client_ip() {
  if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
    $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');
  } else{
    $ip = $_SERVER['REMOTE_ADDR'];
  }
  return $ip;
}

以上这篇PHP制作登录异常ip检测功能的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
实现PHP多线程异步请求的3种方法
Jan 17 PHP
php加密算法之实现可逆加密算法和解密分享
Jan 21 PHP
php中最简单的字符串匹配算法
Dec 16 PHP
php绘制一条直线的方法
Jan 24 PHP
php 参数过滤、数据过滤详解
Oct 26 PHP
Symfony2学习笔记之模板用法详解
Mar 17 PHP
利用php做服务器和web前端的界面进行交互
Oct 31 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
Dec 06 PHP
Yii2 如何在modules中添加验证码的方法
Jun 19 PHP
PHP策略模式定义与用法示例
Jul 27 PHP
Laravel中的Auth模块详解
Aug 17 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
Mar 21 PHP
php array_walk_recursive 使用自定的函数处理数组中的每一个元素
Nov 16 #PHP
Smarty模板常见的简单应用分析
Nov 15 #PHP
Smarty日期时间操作方法示例
Nov 15 #PHP
Fleaphp常见函数功能与用法示例
Nov 15 #PHP
PHP+JS实现的商品秒杀倒计时用法示例
Nov 15 #PHP
php遍历、读取文件夹中图片并分页显示图片的方法
Nov 15 #PHP
thinkphp的dump函数无输出实例代码
Nov 15 #PHP
You might like
Oracle 常见问题解答
2006/10/09 PHP
探讨各种PHP字符串函数的总结分析
2013/06/05 PHP
PHP获取栏目的所有子级和孙级栏目的ID号示例
2014/04/01 PHP
smarty中js的调用方法示例
2014/10/27 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
PHP守护进程化在C和PHP环境下的实现
2017/11/21 PHP
Laravel使用模型实现like模糊查询的例子
2019/10/24 PHP
javascript之解决IE下不渲染的bug
2007/06/29 Javascript
实现51Map地图接口(示例代码)
2013/11/22 Javascript
jquery序列化form表单使用ajax提交后处理返回的json数据
2014/03/03 Javascript
js实现飞入星星特效代码
2014/10/17 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
2015/03/13 Javascript
node.js操作mysql(增删改查)
2015/07/24 Javascript
js H5 canvas投篮小游戏
2016/08/18 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
2017/05/11 Javascript
angular4实现tab栏切换的方法示例
2017/10/21 Javascript
node实现生成带参数的小程序二维码并保存到本地功能示例
2018/12/05 Javascript
使用layui定义一个模块并使用的例子
2019/09/14 Javascript
小程序两种滚动公告栏的实现方法
2019/09/17 Javascript
[05:46]2018完美盛典-《同梦共竞》
2018/12/17 DOTA
python抓取百度首页的方法
2015/05/19 Python
Python中property函数用法实例分析
2018/06/04 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
2019/06/21 Python
在pytorch中为Module和Tensor指定GPU的例子
2019/08/19 Python
利用OpenCV和Python实现查找图片差异
2019/12/19 Python
tf.concat中axis的含义与使用详解
2020/02/07 Python
Python描述符descriptor使用原理解析
2020/03/21 Python
捷克多品牌在线时尚商店:ANSWEAR.cz
2020/10/03 全球购物
优秀实习自我鉴定
2013/12/04 职场文书
班主任工作经验材料
2014/02/02 职场文书
我的长生果教学反思
2014/04/28 职场文书
2015年行政执法工作总结
2015/05/23 职场文书
简述python四种分词工具,盘点哪个更好用?
2021/04/13 Python
解决MySQL Varchar 类型尾部空格的问题
2022/04/06 MySQL
Python获取字典中某个key的value
2022/04/13 Python
Docker容器harbor私有仓库部署和管理
2022/08/05 Servers