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 相关文章推荐
Discuz 6.0+ 批量注册用户名
Sep 13 PHP
PHP中的float类型使用说明
Jul 27 PHP
在PHP中PDO解决中文乱码问题的一些补充
Sep 06 PHP
PHP仿博客园 个人博客(2) 数据库增添改删
Jul 05 PHP
php与java通过socket通信的实现代码
Oct 21 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
May 28 PHP
php+ajax实现图片文件上传功能实例
Jun 17 PHP
CI框架自动加载session出现报错的解决办法
Jun 17 PHP
PHP实现AES256加密算法实例
Sep 22 PHP
php curl中gzip的压缩性能测试实例分析
Nov 08 PHP
深入浅出讲解:php的socket通信原理
Dec 03 PHP
PHP使用第三方即时获取物流动态实例详解
Apr 27 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
Django 中 cookie的使用
2017/08/17 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
php实现往pdf中加数字签名操作示例【附源码下载】
2018/08/07 PHP
动态加载script文件的两种方法
2013/08/15 Javascript
Mac地址验证的javascript代码
2013/11/09 Javascript
window.location.href IE下跳转失效的解决方法
2014/03/27 Javascript
jquery库文件略庞大用纯js替换jquery的方法
2014/08/12 Javascript
javascript限制用户只能输汉字中文的方法
2014/11/20 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
2016/01/18 Javascript
学习使用bootstrap基本控件(table、form、button)
2016/04/12 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
2016/07/12 Javascript
nodejs入门教程三:调用内部和外部方法示例
2017/04/24 NodeJs
全面解析Node.js 8 重要功能和修复
2017/06/02 Javascript
LayUI表格批量删除方法
2018/08/15 Javascript
解决Vue+Element ui开发中碰到的IE问题
2018/09/03 Javascript
node实现mock-plugin中间件的方法
2019/12/25 Javascript
[42:52]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python中的fileinput模块的简单实用示例
2015/07/09 Python
Python的面向对象编程方式学习笔记
2016/07/12 Python
Python 编码处理-str与Unicode的区别
2016/09/06 Python
Python编程实战之Oracle数据库操作示例
2017/06/21 Python
Python实现快速排序的方法详解
2019/10/25 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
2020/06/09 Python
使用css3制作登录表单的步骤
2014/04/07 HTML / CSS
解决HTML5中的audio在手机端和微信端的不能自动播放问题
2019/11/04 HTML / CSS
Laura Mercier官网:彩妆大师罗拉玛斯亚的化妆品牌
2018/01/04 全球购物
UGG澳洲官网:UGG Australia
2018/04/26 全球购物
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
书法培训心得体会
2014/01/05 职场文书
大学旷课检讨书
2014/01/28 职场文书
计算机数据库专业职业生涯规划书
2014/02/08 职场文书
党的群众路线教育学习材料
2014/05/12 职场文书
餐厅感恩节活动策划方案
2014/10/11 职场文书
工地食品安全责任书
2015/05/09 职场文书
学雷锋感言
2015/08/03 职场文书
MySQL count(*)统计总数问题汇总
2022/09/23 MySQL