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 相关文章推荐
整理的一些实用WordPress后台MySQL操作命令
Jan 07 PHP
PHP遍历并打印指定目录下所有文件实例
Feb 10 PHP
PHP采集静态页面并把页面css,img,js保存的方法
Dec 23 PHP
php中curl使用指南
Feb 05 PHP
php实现获取文件mime类型的方法
Feb 11 PHP
PHP环境搭建的详细步骤
Jun 30 PHP
Zend Framework入门教程之Zend_Config组件用法详解
Dec 09 PHP
thinkPHP5分页功能实现方法分析
Oct 25 PHP
PHP 断点续传实例详解
Nov 11 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 PHP
asp函数split()对应php函数explode()
Feb 27 PHP
解决laravel id非自增 模型取回为0 的问题
Oct 11 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防止sql注入代码实例
2013/12/18 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
2015/02/03 PHP
php通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
PHP析构函数destruct与垃圾回收机制的讲解
2019/03/22 PHP
详解JS函数重载
2014/12/04 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
使用JS中的exec()方法构造正则表达式验证
2016/08/01 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
2016/10/05 Javascript
Angular2使用Augury来调试Angular2程序
2017/05/21 Javascript
javascript字体颜色控件的开发 JS实现字体控制
2017/11/27 Javascript
在vue里面设置全局变量或数据的方法
2018/03/09 Javascript
小程序tab页无法传递参数的方法
2018/08/03 Javascript
webpack4 SCSS提取和懒加载的示例
2018/09/03 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
node.js基于dgram数据报模块创建UDP服务器和客户端操作示例
2020/02/12 Javascript
[04:36]DOTA2国际邀请赛 ti3精彩集锦
2013/08/19 DOTA
使用Python脚本将文字转换为图片的实例分享
2015/08/29 Python
利用Python为iOS10生成图标和截屏
2016/09/24 Python
用pandas按列合并两个文件的实例
2018/04/12 Python
python顺序的读取文件夹下名称有序的文件方法
2018/07/11 Python
Python动态赋值的陷阱知识点总结
2019/03/17 Python
Python 离线工作环境搭建的方法步骤
2019/07/29 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
2019/10/23 Python
Pytorch转tflite方式
2020/05/25 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
2020/12/08 Python
使用css3背景渐变中的透明度来设置不同颜色的背景渐变
2014/03/31 HTML / CSS
纯css3实现的鼠标悬停动画按钮
2014/12/23 HTML / CSS
CSS3制作炫酷的下拉菜单及弹起式选单的实例分享
2016/05/17 HTML / CSS
html5标记文字_动力节点Java学院整理
2017/07/11 HTML / CSS
中学优秀班主任事迹材料
2014/05/01 职场文书
企业标语大全
2014/07/01 职场文书
会计工作能力自我评价
2015/03/05 职场文书
《珍珠鸟》教学反思
2016/02/16 职场文书
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python
解决 Redis 秒杀超卖场景的高并发
2022/04/12 Redis