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;
}
}