PHP制作登录异常ip检测功能的实例代码
使用函数查询数据库遍历实现
/** *不在常用ip地址登录返回描红信息 *@paramstring$ipip地址 *@paramstring$name用户名 *@returnstring */ functionerrorIp($ip,$name){ $nowip=get_client_ip(); //判断ip和当前ip是否相同,不同则查询数据库对比 if($ip==$nowip){ //相同直接返回字符串 $str='<fontcolor="blue"'.">登录IP:".$ip."</font>"; }else{ //不同则记数这个ip地址数量 $count=M('log')->where("name='{$name}'ANDip='{$ip}'")->count(); //如果超过一定数量则是正常ip否则为异常返回字符串 if($count>10){ $str='<fontcolor="blue"'.">登录IP:".$ip."</font>"; }else{ $str='<fontcolor="red"'.">异常IP:".$ip."</font>"; } } return$str; }
注释:适合所有框架使用,get_client_ip()是ip获取函数。
get_client_ip函数片段:
functionget_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检测功能的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。