PHP制作登录异常ip检测功能实例
生活随笔
收集整理的這篇文章主要介紹了
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 = '<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检测功能实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.5编程基础之循环控制_41数字统计
- 下一篇: thinkphp5 接入百度语音合成接口