ѡ̳

标题: PHP记录日志用于检测攻击 [打印本页]

作者: admin    时间: 2019-3-4 17:42
标题: PHP记录日志用于检测攻击


   function write_request(){
         $filename ="log/".date('Ymd_H').".txt";

        $request_data =array();
       
        $request_data[date('Y-m-d H:i:s')]['url'] = $_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];
        $request_data[date('Y-m-d H:i:s')]['ip'] = from_ip();
        $request_data[date('Y-m-d H:i:s')]['get'] = $_GET;
        $request_data[date('Y-m-d H:i:s')]['post'] = $_POST;
        $request_data[date('Y-m-d H:i:s')]['input'] = file_get_contents("php://input");
        $request_data[date('Y-m-d H:i:s')]['file'] = $_FILES;

        file_put_contents($filename, print_r($request_data,true), FILE_APPEND);  
          
  }

function from_ip() {
    //strcasecmp 比较两个字符,不区分大小写。返回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;
    //dump(phpinfo());//所有PHP配置信息
}
write_request();







欢迎光临 ѡ̳ (http://www.sunminxuan.cn/bbs/) Powered by Discuz! X3.4