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 相关文章推荐
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
Apr 07 PHP
php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
Jun 03 PHP
PHP写的求多项式导数的函数代码
Jul 04 PHP
php中使用preg_replace函数匹配图片并加上链接的方法
Feb 06 PHP
PHP 数组和字符串互相转换实现方法
Mar 26 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
Dec 16 PHP
PHP中is_dir()函数使用指南
May 08 PHP
PHP模拟QQ登录的方法
Jul 29 PHP
PHP+ajax分页实例简析
Dec 07 PHP
PHP文件上传类实例详解
Apr 08 PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
Sep 26 PHP
PHP实现统计代码行数小工具
Sep 19 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
修改Zend引擎实现PHP源码加密的原理及实践
2008/04/14 PHP
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
2013/06/05 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
2013/06/29 PHP
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
Mootools 1.2教程 函数
2009/09/15 Javascript
异步javascript的原理和实现技巧介绍
2012/11/08 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
2016/07/22 Javascript
jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
2016/09/17 Javascript
解析Vue2.0双向绑定实现原理
2017/02/23 Javascript
react实现一个优雅的图片占位模块组件详解
2017/10/30 Javascript
node.js中TCP Socket多进程间的消息推送示例详解
2018/07/10 Javascript
vue-cli初始化项目中使用less的方法
2018/08/09 Javascript
vue表单自定义校验规则介绍
2018/08/28 Javascript
Vue 实现从小到大的横向滑动效果详解
2019/10/16 Javascript
jQuery实现放大镜案例
2020/10/19 jQuery
Vue基本指令实例图文讲解
2021/02/25 Vue.js
python字典键值对的添加和遍历方法
2016/09/11 Python
利用pyinstaller打包exe文件的基本教程
2019/05/02 Python
wxPython之wx.DC绘制形状
2019/11/19 Python
python脚本后台执行方式
2019/12/21 Python
Python中base64与xml取值结合问题
2019/12/22 Python
PyTorch里面的torch.nn.Parameter()详解
2020/01/03 Python
python使用hdfs3模块对hdfs进行操作详解
2020/06/06 Python
Pandas把dataframe或series转换成list的方法
2020/06/14 Python
CSS3+js实现简单的时钟特效
2015/03/18 HTML / CSS
巴西化妆品商店:Lojas Rede
2019/07/26 全球购物
俄罗斯第一家多品牌在线奢侈品精品店:Aizel.ru
2020/09/06 全球购物
网络公司美工设计工作个人的自我评价
2013/11/03 职场文书
教师自我鉴定范文
2014/03/20 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
班级口号大全
2014/06/09 职场文书
计算机相关专业自荐信
2014/07/02 职场文书
英语感谢信范文
2015/01/20 职场文书
入党心得体会
2019/06/20 职场文书
教你用Python matplotlib库制作简单的动画
2021/06/11 Python
Python list列表删除元素的4种方法
2021/11/01 Python