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

/**
 * 不在常用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检测功能的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持网页设计。