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 5.0对象模型深度探索之对象复制
Mar 27 PHP
简单的PHP图片上传程序
Mar 27 PHP
PhpMyAdmin中无法导入sql文件的解决办法
Jan 08 PHP
php allow_url_include的应用和解释
Apr 22 PHP
使用php实现下载生成某链接快捷方式的解决方法
May 07 PHP
一个php生成16位随机数的代码(两种方法)
Sep 16 PHP
给ECShop添加最新评论
Jan 07 PHP
Symfony2框架创建项目与模板设置实例详解
Mar 17 PHP
PHP HTTP 认证实例详解
Nov 03 PHP
PHP crc32()函数讲解
Feb 14 PHP
关于laravel 子查询 &amp; join的使用
Oct 16 PHP
简单的php购物车代码
Jun 05 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 批量替换程序的具体实现代码
2013/10/04 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
2014/07/28 PHP
yii2超好用的日期组件和时间组件
2016/05/05 PHP
配置Nginx+PHP的正确思路与过程
2016/05/10 PHP
PHP上传图片、删除图片简单实例
2016/11/12 PHP
一实用的实现table排序的Javascript类库
2007/09/12 Javascript
一个可绑定数据源的jQuery数据表格插件
2010/07/17 Javascript
javascript Array.prototype.slice使用说明
2010/10/11 Javascript
在多个页面使用同一个HTML片段《续》
2011/03/04 Javascript
javascript操作select元素实例分析
2015/03/27 Javascript
使用javascript提交form表单方法汇总
2015/06/25 Javascript
AngularJS下对数组的对比分析
2016/08/24 Javascript
bootstrap-datetimepicker实现只显示到日期的方法
2016/11/25 Javascript
Vue.js实战之利用vue-router实现跳转页面
2017/04/01 Javascript
JS实现对json对象排序并删除id相同项功能示例
2018/04/18 Javascript
React router动态加载组件之适配器模式的应用详解
2018/09/12 Javascript
JavaScript实现新年倒计时效果
2018/11/17 Javascript
layui关闭弹窗后刷新主页面和当前更改项的例子
2019/09/06 Javascript
整理 node-sass 安装失败的原因及解决办法(小结)
2020/02/19 Javascript
vue 移动端记录页面浏览位置的方法
2020/03/11 Javascript
python查找指定具有相同内容文件的方法
2015/06/28 Python
Python中的多行注释文档编写风格汇总
2016/06/16 Python
Python闭包执行时值的传递方式实例分析
2018/06/04 Python
Python 运行.py文件和交互式运行代码的区别详解
2019/07/02 Python
python解包概念及实例
2021/02/17 Python
原生canvas制作画图小工具的踩坑和爬坑
2020/06/09 HTML / CSS
廉价连衣裙和婚纱礼服在线销售:Tbdress
2019/02/28 全球购物
党的群众路线教育实践活动心得体会
2014/03/03 职场文书
销售行政专员岗位职责
2014/06/10 职场文书
中秋晚会策划方案
2014/06/12 职场文书
会计学专业求职信
2014/07/17 职场文书
公司转让协议书
2016/03/19 职场文书
2019求职信:应届生求职信范文
2019/04/24 职场文书
POST提交数据常见的四种方式
2022/01/18 HTML / CSS
Java设计模式中的命令模式
2022/04/28 Java/Android
windows10声卡驱动怎么安装?win10声卡驱动安装操作步骤教程
2022/08/05 数码科技