HEX
Server: LiteSpeed
System: Linux pl-rocket-da1.hostsila.org 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: etorby24eu (1588)
PHP: 8.3.23
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //opt/node_parser/api
 <?php

if ($_SERVER['REMOTE_ADDR'] == "176.241.143.3" || $_SERVER['REMOTE_ADDR'] == "194.28.84.9" || $_SERVER['REMOTE_ADDR'] == "93.183.192.183") {

    function data_get($user)
    {
        $result        = exec('lvectl  list-user |awk \'$1 == "' . $user . '"\'');
        $arr['method'] = "GET";
        $arr['result'] = $result ? explode(" ", preg_replace('/\s+/', ' ', trim($result))) : "No such user";
        $arr['error']  = "NO";
        return $arr;
    }

    function data_set($user, $speed, $pmem)
    {
        $result        = shell_exec('lvectl set-user ' . $user . ' --speed ' . $speed . '% --pmem ' . $pmem . 'M');
        $arr['method'] = "SET";
        $arr['result'] = !$result ? OK : "NO";
        $arr['error']  = $result ? $result : "NO";
        return $arr;
    }

    function data_exim_get()
    {
        $arr['hostname']   = exec('hostname');
        $arr['exim_queue'] = exec('exim -bpc');
        return $arr;
    }


    function data_exim_get_detail()
    {
        $arr = "<h2>".exec('hostname')."</h2><br>".shell_exec('/usr/sbin/exim -bp| /usr/sbin/exiqsumm -c -s  |column  -t');
        return $arr;
    }


    function data_summary_get()
    {
        $result        = exec('/opt/node_parser/hooks/summary');
        return $result;
    }

    function topstats_run()
    {
        $result        = exec('/etc/cron.hourly/topstatsjson');
        return $result;
    }

    function topstatslve_run()
    {
        $result        = exec('/opt/node_parser/hooks/topstatsjson_lve.py cron');
        return $result;
    }

    function topstatslve_get_summary()
    {
        $result        = exec('/opt/node_parser/hooks/topstatsjson_lve.py summary');
        return $result;
    }

    function topstatslve_get_account($account)
    {
        $result        = exec("/opt/node_parser/hooks/topstatsjson_lve.py account $account");
        return $result;
    }

    function dcmon_get_account($account)
    {
        $result        = exec("/opt/node_parser/hooks/topstatsjson_lve.py dcmon $account");
        return $result;
    }


    switch ($_GET['action']) {
        case "GET":
            print json_encode(data_get($_GET['user']));
            break;
        case "SET":
            print json_encode(data_set($_GET['user'], $_GET['speed'], $_GET['pmem']));
            break;
        case "EXIM_GET":
            print json_encode(data_exim_get());
            break;
        case "EXIM_DETAIL":
            header("Content-Type: text/plain");
            echo nl2br(data_exim_get_detail());
            break;
        case "SUMMARY_GET":
            print data_summary_get();
            break;
        case "TOPSTATS_RUN":
            print topstats_run();
            break;
        case "TOPSTATSLVE_RUN":
            print topstatslve_run();
            break;
        case "TOPSTATSLVE_GET_SUMMARY":
            print topstatslve_get_summary();
            break;
        case "TOPSTATSLVE_GET_ACCOUNT":
            print topstatslve_get_account($_GET['account']);
            break;
        case "DCMON_GET_ACCOUNT":
            print dcmon_get_account($_GET['account']);
            break;
    }

}