PHP制作登录异常ip检测功能的实例代码
2018-09-24 21:51
使用函数查询数据库遍历实现
/** * 不在常用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检测功能的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。