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 相关文章推荐
简单的页面缓冲技术
Oct 09 PHP
PHP iconv 函数转gb2312的bug解决方法
Oct 11 PHP
解析php中获取url与物理路径的总结
Jun 21 PHP
php用正则表达式匹配URL的简单方法
Nov 12 PHP
destoon公司主页模板风格的添加方法
Jun 20 PHP
php中base_convert()进制数字转换函数实例
Nov 20 PHP
smarty内置函数foreach用法实例
Jan 22 PHP
php检查字符串中是否包含7位GSM字符的方法
Mar 17 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
May 12 PHP
PHP实现的json类实例
Jul 28 PHP
Yii2使用swiftmailer发送邮件的方法
May 03 PHP
基于thinkphp6.0的success、error实现方法
Nov 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
ADODB类使用
2006/11/25 PHP
一些常用的php函数
2006/12/06 PHP
PHP正则表达式之定界符和原子介绍
2012/10/05 PHP
PHP读取配置文件类实例(可读取ini,yaml,xml等)
2015/07/28 PHP
php封装单文件上传到数据库(路径)
2017/10/15 PHP
php中各种定义变量的方法小结
2017/10/18 PHP
通过正则表达式实现表单验证是否为中文
2014/02/18 Javascript
ECMAScript 6即将带给我们新的数组操作方法前瞻
2015/01/06 Javascript
Javascript基础教程之关键字和保留字汇总
2015/01/18 Javascript
javascript实现图片上传前台页面
2015/08/18 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
jQuery中Find选择器用法示例
2016/09/21 Javascript
jquery获取点击控件的绝对位置简单实例
2016/10/13 Javascript
微信小程序 css使用技巧总结
2017/01/09 Javascript
Angular2下使用pdf插件的方法详解
2017/04/29 Javascript
Mac下安装vue
2018/04/11 Javascript
React Native基础入门之初步使用Flexbox布局
2018/07/02 Javascript
vue-cli项目无法用本机IP访问的解决方法
2018/09/20 Javascript
基于axios 解决跨域cookie丢失的问题
2018/09/26 Javascript
vue微信分享出来的链接点开是首页问题的解决方法
2018/11/28 Javascript
javascript 数组精简技巧小结
2020/02/26 Javascript
Python批量合并有合并单元格的Excel文件详解
2018/04/05 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
python简单贪吃蛇开发
2019/01/28 Python
Python逐行读取文件中内容的简单方法
2019/02/26 Python
Django为窗体加上防机器人的验证码功能过程解析
2019/08/14 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
2020/02/28 Python
python基于Kivy写一个图形桌面时钟程序
2021/01/28 Python
html5 的a标签 Href 拨电话的写法
2013/11/04 HTML / CSS
最新大学毕业求职简历的自我评价
2013/10/18 职场文书
《值日生》教学反思
2014/02/17 职场文书
对公司合理化的建议书
2014/03/12 职场文书
干部下基层实施方案
2014/03/14 职场文书
2014年科技工作总结
2014/11/26 职场文书
MySQL 1130异常,无法远程登录解决方案详解
2021/08/23 MySQL
详解Oracle数据库中自带的所有表结构(sql代码)
2021/11/20 Oracle