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实现采集程序原理和简单示例代码
Mar 18 PHP
批量获取memcache值并按key的顺序返回的实现代码
Jun 14 PHP
PHP Class&amp;Object -- PHP 自排序二叉树的深入解析
Jun 25 PHP
Codeigniter生成Excel文档的简单方法
Jun 12 PHP
PHP面向对象精要总结
Nov 07 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
Nov 18 PHP
php生成rss类用法实例
Apr 14 PHP
PHP面试常用算法(推荐)
Jul 22 PHP
浅谈PHP中的数据传输CURL
Sep 06 PHP
magento后台无法登录解决办法的两种方法
Dec 09 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
Aug 16 PHP
laravel 去掉index.php伪静态的操作方法
Oct 12 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中实现图片的锐化
2006/10/09 PHP
自动把纯文本转换成Web页面的php代码
2009/08/27 PHP
php使用pdo连接mssql server数据库实例
2014/12/25 PHP
PHP和MYSQL实现分页导航思路详解
2017/04/11 PHP
php中访问修饰符的知识点总结
2019/01/27 PHP
iframe 异步加载技术及性能分析
2011/07/19 Javascript
利用webqq协议使用python登录qq发消息源码参考
2013/04/08 Javascript
jquery控制select的text/value值为选中状态
2014/06/03 Javascript
node.js中的fs.readSync方法使用说明
2014/12/17 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
原生JS实现美图瀑布流布局赏析
2015/09/07 Javascript
详解JavaScript实现设计模式中的适配器模式的方法
2016/05/18 Javascript
javascript 闭包详解及简单实例应用
2016/12/31 Javascript
微信小程序 JS动态修改样式的实现代码
2017/02/10 Javascript
JS去掉字符串中所有的逗号
2017/10/18 Javascript
vue webpack实用技巧总结
2018/04/24 Javascript
记一次webapck4 配置文件无效的解决历程
2018/09/19 Javascript
js神秘的电报密码 哈弗曼编码实现
2019/09/10 Javascript
Vue中点击active并第一个默认选中功能的实现
2020/02/24 Javascript
[01:01]青春无憾,一战成名——DOTA2全国高校联赛开启
2018/02/25 DOTA
python中assert用法实例分析
2015/04/30 Python
python matplotlib 在指定的两个点之间连线方法
2018/05/25 Python
在Pycharm中执行scrapy命令的方法
2019/01/16 Python
python爬虫租房信息在地图上显示的方法
2019/05/13 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
2019/08/06 Python
Python callable内置函数原理解析
2020/03/05 Python
python 安装impala包步骤
2020/03/28 Python
推荐技术人员一款Python开源库(造数据神器)
2020/07/08 Python
Python之京东商品秒杀的实现示例
2021/01/06 Python
门卫班长岗位职责
2013/12/15 职场文书
幼儿园教师工作制度
2014/01/22 职场文书
新闻编辑求职信
2014/07/13 职场文书
新闻报道稿范文
2015/07/23 职场文书
Spring Data JPA框架Repository自定义实现
2022/04/28 Java/Android
使用 Docker Compose 构建复杂的多容器App
2022/04/30 Servers
Android开发手册Chip监听及ChipGroup监听
2022/06/10 Java/Android