ѡ̳

 找回密码
 ע
搜索
查看: 159|回复: 0
打印 上一主题 下一主题

PHP记录日志用于检测攻击

[复制链接]

789

主题

1158

帖子

4197

积分

Ա

Rank: 9Rank: 9Rank: 9

积分
4197
跳转到指定楼层
¥
发表于 2019-3-4 17:42:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


   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();


回复

使用道具 举报

您需要登录后才可以回帖 登录 | ע

本版积分规则

QQ|Archiver|ֻ|С|ѡ̳

GMT+8, 2026-5-2 04:51 , Processed in 0.078482 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表
0.0983s