php教程

超轻量级php框架startmvc

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

更新时间:2020-03-15 10:16 作者:startmvc
使用函数查询数据库遍历实现/***不在常用ip地址登录返回描红信息*@paramstring$ipip地址*@paramst

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


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