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中上传大体积文件时需要的设置
Oct 09 PHP
多重?l件?合查?(一)
Oct 09 PHP
用PHP和ACCESS写聊天室(六)
Oct 09 PHP
PHP下几种删除目录的方法总结
Aug 19 PHP
php 将excel导入mysql
Nov 09 PHP
写php分页时出现的Fatal error的解决方法
Apr 18 PHP
session在php5.3中的变化 session_is_registered() is deprecated in
Nov 12 PHP
ThinkPHP 404页面的设置方法
Jan 14 PHP
thinkphp命名空间用法实例详解
Dec 30 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
Jan 14 PHP
php微信开发之批量生成带参数的二维码
Jun 26 PHP
thinkPHP中钩子的使用方法实例分析
Nov 16 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
全国FM电台频率大全 - 12 安徽省
2020/03/11 无线电
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
PHP flock 文件锁详细介绍
2012/12/29 PHP
PHP 的比较运算与逻辑运算详解
2016/05/12 PHP
PHP入门教程之数学运算技巧总结
2016/09/11 PHP
jquery提示 &quot;object expected&quot;的解决方法
2009/12/13 Javascript
JavaScript中判断对象类型的几种方法总结
2013/11/11 Javascript
Javascript无参数和有参数类继承问题解决方法
2015/03/02 Javascript
js表单中选择框值的获取及表单的序列化
2015/12/17 Javascript
不定义JQuery插件 不要说会JQuery
2016/03/07 Javascript
微信小程序 WebSocket详解及应用
2017/01/21 Javascript
使用jQuery实现简单的tab框实例
2017/08/22 jQuery
jQuery使用zTree插件实现可拖拽的树示例
2017/09/23 jQuery
JavaScript实现打印星型金字塔功能实例分析
2017/09/27 Javascript
vue在手机中通过本机IP地址访问webApp的方法
2018/08/15 Javascript
element vue Array数组和Map对象的添加与删除操作
2018/11/14 Javascript
Javascript实现贪吃蛇小游戏(含详细注释)
2020/10/23 Javascript
python封装对象实现时间效果
2020/04/23 Python
python操作MySQL数据库的方法分享
2012/05/29 Python
python脚本实现查找webshell的方法
2014/07/31 Python
python虚拟环境的安装配置图文教程
2017/10/20 Python
如何安装2019Pycharm最新版本(详细教程)
2019/09/26 Python
python反编译教程之2048小游戏实例
2021/03/03 Python
瑞典最好的运动鞋专卖店:Sneakersnstuff
2016/08/29 全球购物
Expedia丹麦:全球领先的旅游网站
2018/03/18 全球购物
Harrods英国:世界领先的奢侈品百货商店
2020/09/23 全球购物
.net工程师笔试题
2012/06/09 面试题
医生进修自我鉴定
2014/01/19 职场文书
资助贫困学生倡议书
2014/05/16 职场文书
2014年度工作总结报告
2014/12/15 职场文书
2014年校务公开工作总结
2014/12/18 职场文书
丧事答谢词
2015/01/05 职场文书
2015年教师节感言
2015/08/03 职场文书
使用react+redux实现计数器功能及遇到问题
2021/06/02 Javascript
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫
Shell中的单中括号和双中括号的用法详解
2022/12/24 Servers