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控制用户的浏览器--ob*函数的使用说明
Mar 16 PHP
PHP程序员编程注意事项
Apr 10 PHP
PHP中设置时区,记录日志文件的实现代码
Jan 07 PHP
php中is_null,empty,isset,unset 的区别详细介绍
Apr 28 PHP
PHP多例模式介绍
Jun 24 PHP
destoon二次开发常用数据库操作
Jun 21 PHP
PHP反射机制用法实例
Aug 28 PHP
php如何获取文件的扩展名
Oct 28 PHP
PHP使用反射机制实现查找类和方法的所在位置
Apr 22 PHP
php代码检查代理ip的有效性
Aug 19 PHP
PHP实现将标点符号正则替换为空格的方法
Aug 09 PHP
PHP的mysqli_stmt_init()函数讲解
Jan 24 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
php下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
PHP小技巧之JS和CSS优化工具Minify的使用方法
2014/05/19 PHP
解决php的“It is not safe to rely on the system’s timezone settings”问题
2015/10/08 PHP
PHP 7.1新特性的汇总介绍
2016/12/16 PHP
PHP7修改的函数
2021/03/09 PHP
Jquery Autocomplete 结合asp.net使用要点
2010/10/29 Javascript
实现只能输入数字的input不用replace方法
2013/09/12 Javascript
javascript间隔定时器(延时定时器)学习 间隔调用和延时调用
2014/01/13 Javascript
js倒计时抢购实例
2015/12/20 Javascript
AngularJS 与百度地图的结合实例
2016/10/20 Javascript
JavaScript自定义分页样式
2017/01/17 Javascript
angular 动态组件类型详解(四种组件类型)
2017/02/22 Javascript
vue+vuex+axios+echarts画一个动态更新的中国地图的方法
2017/12/19 Javascript
Vue实现类似Spring官网图片滑动效果方法
2019/03/01 Javascript
js实现图片局部放大效果详解
2019/03/18 Javascript
简述vue-cli中chainWebpack的使用方法
2019/07/30 Javascript
vue循环数组改变点击文字的颜色
2019/10/14 Javascript
python数据库操作常用功能使用详解(创建表/插入数据/获取数据)
2013/12/06 Python
python获取局域网占带宽最大3个ip的方法
2015/07/09 Python
基于Django filter中用contains和icontains的区别(详解)
2017/12/12 Python
Python3模拟curl发送post请求操作示例
2019/05/03 Python
用vue.js组件模拟v-model指令实例方法
2019/07/05 Python
TensorFlow实现简单的CNN的方法
2019/07/18 Python
Django 重写用户模型的实现
2019/07/29 Python
python3调用windows dos命令的例子
2019/08/14 Python
用python求一重积分和二重积分的例子
2019/12/06 Python
python shell命令行中import多层目录下的模块操作
2020/03/09 Python
详解Python中openpyxl模块基本用法
2021/02/23 Python
浅谈CSS3中的变形功能-transform功能
2017/12/27 HTML / CSS
澳洲网红粉泥面膜:Sand & Sky
2019/08/13 全球购物
师范学院教师自荐书
2014/01/31 职场文书
小学数学教学反思
2014/02/02 职场文书
洗手间标语
2014/06/23 职场文书
治庸问责心得体会
2014/09/12 职场文书
仰望星空观后感
2015/06/10 职场文书
表彰大会新闻稿
2015/07/17 职场文书