PHP制作登录异常ip检测功能的实例

墨辰丷
发布: 2023-03-28 15:00:01
原创
1731 人浏览过

本篇文章主要介绍PHP制作登录异常ip检测功能的实例,感兴趣的朋友参考下,希望对大家有所帮助。

使用函数查询数据库遍历实现

/**
 * 不在常用ip地址登录返回描红信息
 * @param string $ip  ip地址
 * @param string $name  用户名
 * @return string
 */

function errorIp($ip,$name){

  $nowip = get_client_ip();
  //判断ip和当前ip是否相同,不同则查询数据库对比
  if($ip == $nowip ){
    //相同直接返回字符串
    $str = &#39;<font color="blue"&#39;.">登录IP:".$ip."</font>";
  }else{
    //不同则记数这个ip地址数量
    $count =  M(&#39;log&#39;)->where("name=&#39;{$name}&#39; AND ip=&#39;{$ip}&#39;")->count();
    //如果超过一定数量则是正常ip否则为异常返回字符串
    if($count > 10){
      $str = &#39;<font color="blue"&#39;.">登录IP:".$ip."</font>";
    }else{
      $str = &#39;<font color="red"&#39;.">异常IP:".$ip."</font>";
    }
  }

  return $str;

}
登录后复制

注释:适合所有框架使用,get_client_ip()是ip获取函数。

get_client_ip函数片段:

function get_client_ip() {
  if(getenv(&#39;HTTP_CLIENT_IP&#39;) && strcasecmp(getenv(&#39;HTTP_CLIENT_IP&#39;), &#39;unknown&#39;)) {
    $ip = getenv(&#39;HTTP_CLIENT_IP&#39;);
  } elseif(getenv(&#39;HTTP_X_FORWARDED_FOR&#39;) && strcasecmp(getenv(&#39;HTTP_X_FORWARDED_FOR&#39;), &#39;unknown&#39;)) {
    $ip = getenv(&#39;HTTP_X_FORWARDED_FOR&#39;);
  } elseif(getenv(&#39;REMOTE_ADDR&#39;) && strcasecmp(getenv(&#39;REMOTE_ADDR&#39;), &#39;unknown&#39;)) {
    $ip = getenv(&#39;REMOTE_ADDR&#39;);
  } else{
    $ip = $_SERVER[&#39;REMOTE_ADDR&#39;];
  }
  return $ip;
}
登录后复制

以上就是本文的全部内容,希望对大家的学习有所帮助。


相关推荐:

php 数组元素快速去重的方法

PHP实现按之字形顺序打印二叉树的方法

php 如何设置一个严格控制过期时间的session详解

以上是PHP制作登录异常ip检测功能的实例的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!