場景:個別情況因為服務(wù)器或其他原因不能獲取IP,會顯示127.0.0.1 這時可以改動代碼解決此類問題
處理文件:\app\common.php
function writelog($uid,$username,$description,$status) { $data['admin_id'] = $uid; $data['admin_name'] = $username; $data['description'] = $description; $data['status'] = $status; $data['ip'] = request()->ip(); $data['add_time'] = time(); $log = db('Log')->insert($data); }
替換成
function defip() { //strcasecmp 比較兩個字符,不區(qū)分大小寫。返回0,>0,<0。 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'); } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) { $ip = $_SERVER['REMOTE_ADDR']; } $res = preg_match ( '/[\d\.]{7,15}/', $ip, $matches ) ? $matches [0] : ''; return $res; } function writelog($uid,$username,$description,$status) { $data['admin_id'] = $uid; $data['admin_name'] = $username; $data['description'] = $description; $data['status'] = $status; $data['ip'] = defip();//request()->ip(); $data['add_time'] = time(); $log = db('Log')->insert($data); }