| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- <?php
- use function Hestiacp\quoteshellarg\quoteshellarg;
- # Return codes
- const E_ARGS = 1;
- const E_INVALID = 2;
- const E_NOTEXIST = 3;
- const E_EXISTS = 4;
- const E_SUSPENDED = 5;
- const E_UNSUSPENDED = 6;
- const E_INUSE = 7;
- const E_LIMIT = 8;
- const E_PASSWORD = 9;
- const E_FORBIDEN = 10;
- const E_FORBIDDEN = 10;
- const E_DISABLED = 11;
- const E_PARSING = 12;
- const E_DISK = 13;
- const E_LA = 14;
- const E_CONNECT = 15;
- const E_FTP = 16;
- const E_DB = 17;
- const E_RRD = 18;
- const E_UPDATE = 19;
- const E_RESTART = 20;
- /**
- * Looks for a code equivalent to "exit_code" to use in http_code.
- *
- * @param int $exit_code
- * @param int $default
- * @return int
- */
- function exit_code_to_http_code(int $exit_code, int $default = 400): int {
- switch ($exit_code) {
- case 0:
- return 200;
- case E_ARGS:
- // return 500;
- return 400;
- case E_INVALID:
- return 422;
- // case E_NOTEXIST:
- // return 404;
- // case E_EXISTS:
- // return 302;
- case E_PASSWORD:
- return 401;
- case E_SUSPENDED:
- case E_UNSUSPENDED:
- case E_FORBIDEN:
- case E_FORBIDDEN:
- return 401;
- // return 403;
- case E_DISABLED:
- return 400;
- // return 503;
- }
- return $default;
- }
- function check_local_ip($addr) {
- if (in_array($addr, [$_SERVER["SERVER_ADDR"], "127.0.0.1"])) {
- return true;
- } else {
- return false;
- }
- }
- function get_real_user_ip() {
- $ip = $_SERVER["REMOTE_ADDR"];
- if (isset($_SERVER["HTTP_CLIENT_IP"]) && !check_local_ip($_SERVER["HTTP_CLIENT_IP"])) {
- if (filter_var($_SERVER["HTTP_CLIENT_IP"], FILTER_VALIDATE_IP)) {
- $ip = $_SERVER["HTTP_CLIENT_IP"];
- }
- }
- if (
- isset($_SERVER["HTTP_X_FORWARDED_FOR"]) &&
- !check_local_ip($_SERVER["HTTP_X_FORWARDED_FOR"])
- ) {
- if (filter_var($_SERVER["HTTP_X_FORWARDED_FOR"], FILTER_VALIDATE_IP)) {
- $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
- }
- }
- if (isset($_SERVER["HTTP_FORWARDED_FOR"]) && !check_local_ip($_SERVER["HTTP_FORWARDED_FOR"])) {
- if (filter_var($_SERVER["HTTP_FORWARDED_FOR"], FILTER_VALIDATE_IP)) {
- $ip = $_SERVER["HTTP_FORWARDED_FOR"];
- }
- }
- if (isset($_SERVER["HTTP_X_FORWARDED"]) && !check_local_ip($_SERVER["HTTP_X_FORWARDED"])) {
- if (filter_var($_SERVER["HTTP_X_FORWARDED"], FILTER_VALIDATE_IP)) {
- $ip = $_SERVER["HTTP_X_FORWARDED"];
- }
- }
- if (isset($_SERVER["HTTP_FORWARDED"]) && !check_local_ip($_SERVER["HTTP_FORWARDED"])) {
- if (filter_var($_SERVER["HTTP_FORWARDED"], FILTER_VALIDATE_IP)) {
- $ip = $_SERVER["HTTP_FORWARDED"];
- }
- }
- if (
- isset($_SERVER["HTTP_CF_CONNECTING_IP"]) &&
- !check_local_ip($_SERVER["HTTP_CF_CONNECTING_IP"])
- ) {
- if (filter_var($_SERVER["HTTP_CF_CONNECTING_IP"], FILTER_VALIDATE_IP)) {
- $ip = $_SERVER["HTTP_CF_CONNECTING_IP"];
- }
- }
- return $ip;
- }
- /**
- * Create a history log using 'v-log-action' script.
- *
- * @param string $message The message for log.
- * @param string $category A category for log. Ex: Auth, Firewall, API...
- * @param string $level Info|Warning|Error.
- * @param string $user A username for save in the user history ou 'system' to save in Hestia history.
- * @return int The script result code.
- */
- function hst_add_history_log($message, $category = "System", $level = "Info", $user = "system") {
- //$message = ucfirst($message);
- //$message = str_replace("'", "`", $message);
- $category = ucfirst(strtolower($category));
- $level = ucfirst(strtolower($level));
- $command_args =
- quoteshellarg($user) .
- " " .
- quoteshellarg($level) .
- " " .
- quoteshellarg($category) .
- " " .
- quoteshellarg($message);
- exec(HESTIA_CMD . "v-log-action " . $command_args, $output, $return_var);
- unset($output);
- return $return_var;
- }
- function get_hostname() {
- $badValues = [
- false,
- null,
- 0,
- "",
- "localhost",
- "127.0.0.1",
- "::1",
- "0000:0000:0000:0000:0000:0000:0000:0001",
- ];
- $ret = gethostname();
- if (in_array($ret, $badValues, true)) {
- throw new Exception("gethostname() failed");
- }
- $ret2 = gethostbyname($ret);
- if (in_array($ret2, $badValues, true)) {
- return $ret;
- }
- $ret3 = gethostbyaddr($ret2);
- if (in_array($ret3, $badValues, true)) {
- return $ret2;
- }
- return $ret3;
- }
- function display_title($tab) {
- $array1 = ["{{page}}", "{{hostname}}", "{{ip}}", "{{appname}}"];
- $array2 = [$tab, get_hostname(), $_SERVER["REMOTE_ADDR"], $_SESSION["APP_NAME"]];
- return str_replace($array1, $array2, $_SESSION["TITLE"]);
- }
|