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之COOKIE支持详解
Sep 20 PHP
smarty自定义函数htmlcheckboxes用法实例
Jan 22 PHP
使用PHP编写发红包程序
Jul 22 PHP
PHP的Yii框架入门使用教程
Feb 15 PHP
提交表单后 PHP获取提交内容的实现方法
May 25 PHP
PHP微信开发之查询微信精选文章
Jun 23 PHP
thinkPHP分组后模板无法加载问题解决方法
Jul 12 PHP
thinkPHP的表达式查询用法详解
Sep 14 PHP
PHP串行化与反串行化实例分析
Dec 27 PHP
PHP实现动态删除XML数据的方法示例
Mar 30 PHP
laravel 使用事件系统统计浏览量的实现
Oct 16 PHP
php和js实现根据子网掩码和ip计算子网功能示例
Nov 09 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
Yii多表联合查询操作详解
2016/06/02 PHP
JavaScript数值转换的三种方式总结
2014/07/31 Javascript
jQuery响应鼠标事件并隐藏与显示input默认值
2014/08/24 Javascript
jquery队列函数用法实例
2014/12/16 Javascript
js与jquery实时监听输入框值的oninput与onpropertychange方法
2015/02/05 Javascript
在javascript中使用com组件的简单实现方法
2016/08/17 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
js学习总结之DOM2兼容处理顺序问题的解决方法
2017/07/27 Javascript
XMLHttpRequest对象_Ajax异步请求重点(推荐)
2017/09/28 Javascript
AngularJS中scope的绑定策略实例分析
2017/10/30 Javascript
IntelliJ IDEA编辑器配置vue高亮显示
2019/09/26 Javascript
JS Ajax请求会话过期处理问题解决方法分析
2019/11/16 Javascript
[01:12](回顾)DOTA2国际邀请赛,全世界DOTAer的盛宴
2014/07/01 DOTA
python实现同时给多个变量赋值的方法
2015/04/30 Python
Python中字典映射类型的学习教程
2015/08/20 Python
python Django模板的使用方法
2016/01/14 Python
Python编写电话薄实现增删改查功能
2016/05/07 Python
python函数式编程学习之yield表达式形式详解
2018/03/25 Python
PyTorch快速搭建神经网络及其保存提取方法详解
2018/04/28 Python
python中reader的next用法
2018/07/24 Python
Django框架的中的setting.py文件说明详解
2018/10/15 Python
对Pyhon实现静态变量全局变量的方法详解
2019/01/11 Python
Python对象与引用的介绍
2019/01/24 Python
python实现五子棋游戏
2019/06/18 Python
Pandas分组与排序的实现
2019/07/23 Python
Python如何实现机器人聊天
2020/09/10 Python
台湾家适得:Homeget
2019/02/11 全球购物
电子邮箱格式怎么写
2014/01/12 职场文书
单位介绍信范文
2014/01/18 职场文书
媒矿安全生产承诺书
2014/05/23 职场文书
学校教研活动总结
2014/07/02 职场文书
2015年农村党员公开承诺事项
2015/04/28 职场文书
行政处罚听证告知书
2015/07/01 职场文书
运动会宣传语
2015/07/13 职场文书
2016年幼儿园教师政治学习心得体会
2016/01/23 职场文书
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python