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 删除记录同时删除图片文件的实现代码
May 12 PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
Jun 06 PHP
php实现mysql备份恢复分卷处理的方法
Dec 26 PHP
PHP中使用imagick生成PSD文件缩略图教程
Jan 26 PHP
PHP+MySQL实现无极限分类栏目的方法
Dec 23 PHP
利用php生成验证码
Feb 23 PHP
Yii2中添加全局函数的方法分析
May 04 PHP
PHP实时统计中文字数和区别
Feb 28 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
Mar 28 PHP
yii框架使用分页的方法分析
Jul 25 PHP
laravel框架数据库配置及操作数据库示例
Oct 10 PHP
laravel 获取某个查询的查询SQL语句方法
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编实现程动态图像的创建代码
2008/09/28 PHP
PHP 开源框架22个简单简介
2009/08/24 PHP
php数据库连接时容易出错的特殊符号问题
2010/09/01 PHP
基于PHP对XML的操作详解
2013/06/07 PHP
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
2013/08/08 Javascript
一个jquery实现的不错的多行文字图片滚动效果
2014/09/28 Javascript
AngularJS ng-repeat数组有重复值的解决方法
2016/10/23 Javascript
jQuery序列化后的表单值转换成Json
2017/06/16 jQuery
bootstrap multiselect下拉列表功能
2017/08/22 Javascript
彻底搞懂JavaScript中的apply和call方法(必看)
2017/09/18 Javascript
JS使用JSON.parse(),JSON.stringify()实现对对象的深拷贝功能分析
2019/03/06 Javascript
js实现鼠标切换图片(无定时器)
2021/01/27 Javascript
Python笔记(叁)继续学习
2012/10/24 Python
Python实现Const详解
2015/01/27 Python
使用Python编写简单的画图板程序的示例教程
2015/12/08 Python
5种Python单例模式的实现方式
2016/01/14 Python
Python黑魔法Descriptor描述符的实例解析
2016/06/02 Python
网易2016研发工程师编程题 奖学金(python)
2019/06/19 Python
Django中的session用法详解
2020/03/09 Python
利用Python实现某OA系统的自动定位功能
2020/05/27 Python
Python pymysql模块安装并操作过程解析
2020/10/13 Python
如何用 Python 制作 GitHub 消息助手
2021/02/20 Python
css3 响应式媒体查询的示例代码
2019/09/25 HTML / CSS
css3实现背景图片拉伸效果像桌面壁纸一样
2013/08/19 HTML / CSS
天巡全球:Skyscanner Global
2017/06/20 全球购物
Lowe’s加拿大:家居装修、翻新和五金店
2019/12/06 全球购物
vue项目实现分页效果
2021/03/24 Vue.js
在校大学生的职业生涯规划书
2014/03/14 职场文书
2015年银行客户经理工作总结
2015/04/01 职场文书
2016七夕情人节寄语
2015/12/04 职场文书
2016年全国爱眼日宣传教育活动总结
2016/04/05 职场文书
导游词之太湖
2019/10/08 职场文书
MySQL学习总结-基础架构概述
2021/04/05 MySQL
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
2021/06/11 Python
Golang 语言控制并发 Goroutine的方法
2021/06/30 Golang
html中相对位置与绝对位置的具体使用
2022/05/15 HTML / CSS