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 array_push 数组函数
Dec 26 PHP
php压缩多个CSS为一个css的代码并缓存
Apr 21 PHP
PHP设计模式之装饰者模式
Feb 29 PHP
深入php常用函数的使用汇总
Jun 08 PHP
PHP语法自动检查的Vim插件
Aug 11 PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
Jul 08 PHP
php实现的简易扫雷游戏实例
Jul 09 PHP
PHP中两个float(浮点数)比较实例分析
Sep 27 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
Oct 09 PHP
CI映射(加载)数据到view层的方法
Mar 28 PHP
PHP格式化MYSQL返回float类型的方法
Mar 30 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
Feb 10 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
Smarty模板常见的简单应用分析
2016/11/15 PHP
实例讲解PHP表单处理
2019/02/15 PHP
初探jquery——表单应用范例
2007/02/20 Javascript
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
JQuery EasyUI 对话框的使用方法
2010/10/24 Javascript
Jquery多选框互相内容交换的实例代码
2013/07/04 Javascript
编写高质量JavaScript代码的基本要点
2016/03/02 Javascript
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
2016/12/26 Javascript
vue脚手架搭建过程图解
2018/06/06 Javascript
图解NodeJS实现登录注册功能
2019/09/16 NodeJs
Vue $attrs &amp; inheritAttr实现button禁用效果案例
2020/12/07 Vue.js
探究Python多进程编程下线程之间变量的共享问题
2015/05/05 Python
Python计时相关操作详解【time,datetime】
2017/05/26 Python
Python通过OpenCV的findContours获取轮廓并切割实例
2018/01/05 Python
Python进程间通信Queue实例解析
2018/01/25 Python
python实现信号时域统计特征提取代码
2020/02/26 Python
pycharm 实现调试窗口恢复
2021/02/05 Python
python Autopep8实现按PEP8风格自动排版Python代码
2021/03/02 Python
Rockport乐步美国官网:风靡美国的白宫鞋
2016/11/24 全球购物
日本民宿预约平台:STAY JAPAN
2017/07/01 全球购物
伦敦鲜花递送:Flower Station
2021/02/03 全球购物
中专生的个人自我评价
2013/12/11 职场文书
个人求职信范文分享
2013/12/13 职场文书
门卫岗位安全职责
2013/12/13 职场文书
教师旷工检讨书
2014/01/18 职场文书
中式结婚主持词
2014/03/14 职场文书
运动会拉拉队口号
2014/06/09 职场文书
旷课检讨书范文
2014/10/30 职场文书
2014年护士个人工作总结
2014/11/11 职场文书
语文复习计划
2015/01/19 职场文书
工作态度不好检讨书
2015/05/06 职场文书
家长会开场白和结束语
2015/05/29 职场文书
李强感恩观后感
2015/06/17 职场文书
Python 数据可视化之Bokeh详解
2021/11/02 Python
react 路由Link配置详解
2021/11/11 Javascript
python中的getter与setter你了解吗
2022/03/24 Python