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 相关文章推荐
解决控件遮挡问题:关于有窗口元素和无窗口元素
Jan 28 PHP
Smarty的配置与高级缓存技术分享
Jun 05 PHP
PHP 通过Socket收发十六进制数据的实现代码
Aug 16 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
May 08 PHP
php多任务程序实例解析
Jul 19 PHP
ThinkPHP中使用ajax接收json数据的方法
Dec 18 PHP
php如何获取文件的扩展名
Oct 28 PHP
浅析PHP7新功能及语法变化总结
Jun 17 PHP
php错误日志简单配置方法
Jul 11 PHP
php 实现一个字符串加密解密的函数实例代码
Nov 01 PHP
实例讲解PHP表单处理
Feb 15 PHP
TP5框架使用QueryList采集框架爬小说操作示例
Mar 26 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编程实现阳历转换为阴历的方法实例
2017/08/08 PHP
JS小框架 fly javascript framework
2009/11/26 Javascript
jQuery阻止冒泡和HTML默认操作
2010/11/17 Javascript
javascript自动改变文字大小和颜色的效果的小例子
2013/08/02 Javascript
javascript阻止scroll事件多次执行的思路及实现
2013/11/08 Javascript
浅谈Javascript Base64 加密解密
2014/12/28 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
js点击选择文本的方法
2015/02/09 Javascript
jQuery实现首页图片淡入淡出效果的方法
2015/06/10 Javascript
JavaScript实现同时调用多个函数的方法
2015/11/09 Javascript
网页中右键功能的实现方法之contextMenu的使用
2017/02/20 Javascript
JavaScript中数组Array方法详解
2017/02/27 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
ReactJs设置css样式的方法
2017/06/08 Javascript
JS轮播图实现简单代码
2021/02/19 Javascript
css和js实现弹出登录居中界面完整代码
2017/11/26 Javascript
jQuery封装animate.css的实例
2018/01/04 jQuery
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
Vuejs监听vuex中值的变化的方法示例
2018/12/02 Javascript
js实现延迟加载的几种方法详解
2019/01/19 Javascript
Vue发布项目实例讲解
2019/07/17 Javascript
JS Thunk 函数的含义和用法实例总结
2020/04/08 Javascript
vue集成一个支持图片缩放拖拽的富文本编辑器
2021/01/29 Vue.js
python实现桌面壁纸切换功能
2019/01/21 Python
Python中的引用和拷贝实例解析
2019/11/14 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
2020/04/15 Python
Python logging模块handlers用法详解
2020/08/14 Python
Python通过format函数格式化显示值
2020/10/17 Python
HTML5 本地存储实现购物车功能
2017/09/07 HTML / CSS
雅诗兰黛(Estee Lauder)英国官方网站:世界顶级化妆品牌
2016/12/29 全球购物
函授自我鉴定
2013/11/06 职场文书
人力资源部经理助理岗位职责
2014/03/04 职场文书
《翻越远方的大山》教学反思
2014/04/13 职场文书
环境卫生倡议书
2014/08/29 职场文书
原告离婚代理词
2015/05/23 职场文书
Vue的过滤器你真了解吗
2022/02/24 Vue.js