format('l, F j, Y H:i:s'); // Get date $formatted_date2 = $date->format('d/m/Y H:i:s'); // Get date2 $formatted_date3 = $date->format('Y/m/d H:i:s'); // Get date3 //System stats // OS-Version $os_version = ''; // Raspbian if ($os_version == '') {$os_version = exec('cat /etc/os-release | grep PRETTY_NAME');} // Dietpi if ($os_version == '') {$os_version = exec('uname -o');} //$os_version_arr = explode("\n", trim($os_version)); $stat['os_version'] = str_replace('"', '', str_replace('PRETTY_NAME=', '', $os_version)); $stat['uptime'] = str_replace('up ', '', shell_exec("uptime -p")); // Get system uptime $system_namekernel = shell_exec("uname"); // Get system name kernel $system_namesystem = shell_exec("uname -o"); // Get name system $system_full = shell_exec("uname -a"); // Get system full $system_architecture = shell_exec("uname -m"); // Get system Architecture $load_average = sys_getloadavg(); // Get load average $system_process_count = shell_exec("ps -e --no-headers | wc -l"); // Count processes //Motherboard stats $motherboard_name = shell_exec('cat /sys/class/dmi/id/board_name'); // Get the Motherboard name $motherboard_manufactured = shell_exec('cat /sys/class/dmi/id/board_vendor'); // Get the Motherboard manufactured $motherboard_revision = shell_exec('cat /sys/class/dmi/id/board_version'); // Get the Motherboard revision $motherboard_bios = shell_exec('cat /sys/class/dmi/id/bios_version'); // Get the Motherboard BIOS $motherboard_biosdate = shell_exec('cat /sys/class/dmi/id/bios_date'); // Get the Motherboard BIOS date $motherboard_biosvendor = shell_exec('cat /sys/class/dmi/id/bios_vendor'); // Get the Motherboard BIOS vendor //CPU stats $prevVal = shell_exec("cat /proc/cpuinfo | grep processor"); $prevArr = explode("\n", trim($prevVal)); $stat['cpu'] = sizeof($prevArr); $cpu_result = shell_exec("cat /proc/cpuinfo | grep Model"); $stat['cpu_model'] = strstr($cpu_result, "\n", true); $stat['cpu_model'] = str_replace(":", "", trim(str_replace("Model", "", $stat['cpu_model']))); if ($stat['cpu_model'] == '') { $cpu_result = shell_exec("cat /proc/cpuinfo | grep model\ name"); $stat['cpu_model'] = strstr($cpu_result, "\n", true); $stat['cpu_model'] = str_replace(":", "", trim(str_replace("model name", "", $stat['cpu_model']))); } if (file_exists('/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq')) { // RaspbianOS $stat['cpu_frequ'] = exec('cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq') / 1000; } elseif (is_numeric(str_replace(',', '.', exec('lscpu | grep "MHz" | awk \'{print $3}\'')))) { // Ubuntu Server, DietPi event. others $stat['cpu_frequ'] = round(exec('lscpu | grep "MHz" | awk \'{print $3}\''), 0); } elseif (is_numeric(str_replace(',', '.', exec('lscpu | grep "max MHz" | awk \'{print $4}\'')))) { // RaspbianOS and event. others $stat['cpu_frequ'] = round(str_replace(',', '.', exec('lscpu | grep "max MHz" | awk \'{print $4}\'')), 0); } else { // Fallback $stat['cpu_frequ'] = "unknown"; } $cpu_temp = shell_exec('cat /sys/class/hwmon/hwmon0/temp1_input'); // Get the CPU temperature $cpu_temp = floatval($cpu_temp) / 1000; // Convert the temperature to degrees Celsius $cpu_vendor = exec('cat /proc/cpuinfo | grep "vendor_id" | cut -d ":" -f 2' ); // Get the CPU vendor //Memory stats $total_memorykb = shell_exec("cat /proc/meminfo | grep MemTotal | awk '{print $2}'"); $total_memorykb = trim($total_memorykb); $total_memorykb = number_format($total_memorykb, 0, '.', '.'); $total_memorymb = shell_exec("cat /proc/meminfo | grep MemTotal | awk '{print $2/1024}'"); $total_memorymb = trim($total_memorymb); $total_memorymb = number_format($total_memorymb, 0, '.', '.'); $mem_used = round(memory_get_usage() / 1048576 * 100, 2); $memory_usage_percent = round(($mem_used / $total_memorymb), 2); //HDD stats $hdd_result = shell_exec(" df -P | awk '{print $1}'"); $hdd_devices = explode("\n", trim($hdd_result)); $hdd_result = shell_exec(" df -P | awk '{print $2}'"); $hdd_devices_total = explode("\n", trim($hdd_result)); $hdd_result = shell_exec(" df -P | awk '{print $3}'"); $hdd_devices_used = explode("\n", trim($hdd_result)); $hdd_result = shell_exec(" df -P | awk '{print $4}'"); $hdd_devices_free = explode("\n", trim($hdd_result)); $hdd_result = shell_exec(" df -P | awk '{print $5}'"); $hdd_devices_percent = explode("\n", trim($hdd_result)); $hdd_result = shell_exec(" df -P | awk '{print $6}'"); $hdd_devices_mount = explode("\n", trim($hdd_result)); //Network stats // Check Server name if (!empty(gethostname())) { $network_NAME = gethostname(); } else { $network_NAME = lang('Systeminfo_Network_Server_Name_String'); } // Check HTTPS if (isset($_SERVER['HTTPS'])) { $network_HTTPS = 'Yes (HTTPS)'; } else { $network_HTTPS = lang('Systeminfo_Network_Secure_Connection_String'); } // Check Query String if (empty($_SERVER['QUERY_STRING'])) { $network_QueryString = lang('Systeminfo_Network_Server_Query_String'); } else { $network_QueryString = $_SERVER['QUERY_STRING']; } // Check HTTP referer if (empty($_SERVER['HTTP_REFERER'])) { $network_referer = lang('Systeminfo_Network_HTTP_Referer_String'); } else { $network_referer = $_SERVER['HTTP_REFERER']; } //Network Hardware stat $network_result = shell_exec("cat /proc/net/dev | tail -n +3 | awk '{print $1}'"); $net_interfaces = explode("\n", trim($network_result)); $network_result = shell_exec("cat /proc/net/dev | tail -n +3 | awk '{print $2}'"); $net_interfaces_rx = explode("\n", trim($network_result)); $network_result = shell_exec("cat /proc/net/dev | tail -n +3 | awk '{print $10}'"); $net_interfaces_tx = explode("\n", trim($network_result)); //USB devices $usb_result = shell_exec("lsusb"); $usb_devices_mount = explode("\n", trim($usb_result)); // General ---------------------------------------------------------- echo '

' . lang('Systeminfo_General') . '

' . lang('Systeminfo_General_Full_Date') . '
' . $formatted_date . '
' . lang('Systeminfo_General_Date') . '
' . $formatted_date2 . '
' . lang('Systeminfo_General_Date2') . '
' . $formatted_date3 . '
' . lang('Systeminfo_General_TimeZone') . '
' . $timeZone . '
'; // Network Hardware ---------------------------------------------------------- echo '

' . lang('Systeminfo_Network_Hardware') . '

'; for ($x = 0; $x < sizeof($net_interfaces); $x++) { $interface_name = str_replace(':', '', $net_interfaces[$x]); $interface_ip_temp = exec('ip addr show ' . $interface_name . ' | grep "inet "'); $interface_ip_arr = explode(' ', trim($interface_ip_temp)); if (!isset($interface_ip_arr[1])) { $interface_ip_arr[1] = '--'; } if ($net_interfaces_rx[$x] == 0) { $temp_rx = 0; } else { $temp_rx = number_format(round(($net_interfaces_rx[$x] / 1024 / 1024), 2), 2, ',', '.'); } if ($net_interfaces_tx[$x] == 0) { $temp_tx = 0; } else { $temp_tx = number_format(round(($net_interfaces_tx[$x] / 1024 / 1024), 2), 2, ',', '.'); } echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } echo '
' . lang('Systeminfo_Network_Hardware_Interface_Name') . ' ' . lang('Systeminfo_Network_Hardware_Interface_Mask') . ' ' . lang('Systeminfo_Network_Hardware_Interface_RX') . ' ' . lang('Systeminfo_Network_Hardware_Interface_TX') . '
' . $interface_name . '' . $interface_ip_arr[1] . '' . $temp_rx . ' MB' . $temp_tx . ' MB
'; // Client ---------------------------------------------------------- echo '

' . lang('Systeminfo_This_Client') . '

' . lang('Systeminfo_Client_User_Agent') . '
' . $_SERVER['HTTP_USER_AGENT'] . '
' . lang('Systeminfo_Client_Resolution') . '
'; echo ''; // System ---------------------------------------------------------- echo '

' . lang('Systeminfo_System') . '

' . lang('Systeminfo_System_Uptime') . '
' . $stat['uptime'] . '
' . lang('Systeminfo_System_Kernel') . '
' . $system_namekernel . '
' . lang('Systeminfo_System_System') . '
' . $system_namesystem . '
' . lang('Systeminfo_System_OSVersion') . '
' . $stat['os_version'] . '
' . lang('Systeminfo_System_Uname') . '
' . $system_full . '
' . lang('Systeminfo_System_Architecture') . '
' . $system_architecture . '
' . lang('Systeminfo_System_AVG') . '
'. $load_average[0] .' '. $load_average[1] .' '. $load_average[2] .'
' . lang('Systeminfo_System_Running_Processes') . '
' . $system_process_count . '
'; // Motherboard ---------------------------------------------------------- echo '

' . lang('Systeminfo_Motherboard') . '

' . lang('Systeminfo_Motherboard_Name') . '
' . $motherboard_name . '
' . lang('Systeminfo_Motherboard_Manufactured') . '
' . $motherboard_manufactured . '
' . lang('Systeminfo_Motherboard_Revision') . '
' . $motherboard_revision. '
' . lang('Systeminfo_Motherboard_BIOS') . '
' . $motherboard_bios . '
' . lang('Systeminfo_Motherboard_BIOS_Date') . '
' . $motherboard_biosdate . '
' . lang('Systeminfo_Motherboard_BIOS_Vendor') . '
' . $motherboard_biosvendor . '
'; // CPU ---------------------------------------------------------- echo '

' . lang('Systeminfo_CPU') . '

' . lang('Systeminfo_CPU_Vendor') . '
' . $cpu_vendor . '
' . lang('Systeminfo_CPU_Name') . '
' . $stat['cpu_model'] . '
' . lang('Systeminfo_CPU_Cores') . '
' . $stat['cpu'] . '
' . lang('Systeminfo_CPU_Speed') . '
' . $stat['cpu_frequ'] . ' MHz
' . lang('Systeminfo_CPU_Temp') . '
'. $cpu_temp .' °C
'; // Get the number of CPU cores $num_cpus = $stat['cpu']; $num_cpus = $num_cpus +2; // Iterate over the CPU cores for ($i = 2,$a = 0; $i < $num_cpus; $i++,$a++) { // Get the CPU temperature $cpu_tempxx = shell_exec('cat /sys/class/hwmon/hwmon0/temp' . $i . '_input'); // Convert the temperature to degrees Celsius $cpu_tempxx = floatval($cpu_tempxx) / 1000; // Print the CPU temperature echo '
CPU Temp ' . $a . ':
' . $cpu_tempxx . ' °C
'; } echo '
'; // Memory ---------------------------------------------------------- echo '

' . lang('Systeminfo_Memory') . '

' . lang('Systeminfo_Memory_Usage_Percent') . '
' . $memory_usage_percent . ' %
' . lang('Systeminfo_Memory_Usage') . '
' . $mem_used . ' MB / ' . $total_memorymb . ' MB
' . lang('Systeminfo_Memory_Total_Memory') . '
' . $total_memorymb . ' MB (' . $total_memorykb . ' KB)
'; // Storage ---------------------------------------------------------- echo '

' . lang('Systeminfo_Storage') . '

'; $storage_lsblk = shell_exec("lsblk -io NAME,SIZE,TYPE,MOUNTPOINT,MODEL --list | tail -n +2 | awk '{print $1\"#\"$2\"#\"$3\"#\"$4\"#\"$5}'"); $storage_lsblk_line = explode("\n", $storage_lsblk); $storage_lsblk_line = array_filter($storage_lsblk_line); for ($x = 0; $x < sizeof($storage_lsblk_line); $x++) { $temp = array(); $temp = explode("#", $storage_lsblk_line[$x]); $storage_lsblk_line[$x] = $temp; } for ($x = 0; $x < sizeof($storage_lsblk_line); $x++) { echo '
'; if (preg_match('~[0-9]+~', $storage_lsblk_line[$x][0])) { echo '
"' . lang('Systeminfo_Storage_Mount') . ' ' . $storage_lsblk_line[$x][3] . '"
'; } else { echo '
"' . str_replace('_', ' ', $storage_lsblk_line[$x][3]) . '"
'; } echo '
' . lang('Systeminfo_Storage_Device') . ' /dev/' . $storage_lsblk_line[$x][0] . '
'; echo '
' . lang('Systeminfo_Storage_Size') . ' ' . $storage_lsblk_line[$x][1] . '
'; echo '
' . lang('Systeminfo_Storage_Type') . ' ' . $storage_lsblk_line[$x][2] . '
'; echo '
'; } echo '
'; // Storage usage ---------------------------------------------------------- echo '

' . lang('Systeminfo_Storage_Usage') . '

'; for ($x = 0; $x < sizeof($hdd_devices); $x++) { if (stristr($hdd_devices[$x], '/dev/')) { if (!stristr($hdd_devices[$x], '/loop')) { if ($hdd_devices_total[$x] == 0 || $hdd_devices_total[$x] == '') {$temp_total = 0;} else { $temp_total = number_format(round(($hdd_devices_total[$x] / 1024 / 1024), 2), 2, ',', '.'); $temp_total = trim($temp_total);} if ($hdd_devices_used[$x] == 0 || $hdd_devices_used[$x] == '') {$temp_used = 0;} else { $temp_used = number_format(round(($hdd_devices_used[$x] / 1024 / 1024), 2), 2, ',', '.'); $temp_used = trim($temp_total);} if ($hdd_devices_free[$x] == 0 || $hdd_devices_free[$x] == '') {$temp_free = 0;} else { $temp_free = number_format(round(($hdd_devices_free[$x] / 1024 / 1024), 2), 2, ',', '.'); $temp_free = trim($temp_total);} echo '
'; echo '
"' . lang('Systeminfo_Storage_Usage_Mount') . ' ' . $hdd_devices_mount[$x] . '"
'; echo '
' . lang('Systeminfo_Storage_Usage_Total') . ' ' . $temp_total . ' GB
'; echo '
' . lang('Systeminfo_Storage_Usage_Used') . ' ' . $temp_used . ' GB (' . $hdd_devices_percent[$x]. ')
'; echo '
' . lang('Systeminfo_Storage_Usage_Free') . ' ' . $temp_free . ' GB
'; echo '
'; } } } #echo '
' . $lang['SysInfo_storage_note']; echo '
'; // Network ---------------------------------------------------------- echo '

' . lang('Systeminfo_Network') . '

' . lang('Systeminfo_Network_IP') . '
' . shell_exec("curl https://ifconfig.co") . '
' . lang('Systeminfo_Network_IP_Connection') . '
' . $_SERVER['REMOTE_ADDR'] . '
' . lang('Systeminfo_Network_IP_Server') . '
' . $_SERVER['SERVER_ADDR'] . '
' . lang('Systeminfo_Network_Server_Name') . '
' . $network_NAME . '
' . lang('Systeminfo_Network_Connection_Port') . '
' . $_SERVER['REMOTE_PORT'] . '
' . lang('Systeminfo_Network_Secure_Connection') . '
' . $network_HTTPS . '
' . lang('Systeminfo_Network_Server_Version') . '
' . $_SERVER['SERVER_SOFTWARE'] . '
' . lang('Systeminfo_Network_Request_URI') . '
' . $_SERVER['REQUEST_URI'] . '
' . lang('Systeminfo_Network_Server_Query') . '
' . $network_QueryString . '
' . lang('Systeminfo_Network_HTTP_Host') . '
' . $_SERVER['HTTP_HOST'] . '
' . lang('Systeminfo_Network_HTTP_Referer') . '
' . $network_referer . '
' . lang('Systeminfo_Network_MIME') . '
' . $_SERVER['HTTP_ACCEPT'] . '
' . lang('Systeminfo_Network_Accept_Language') . '
' . $_SERVER['HTTP_ACCEPT_LANGUAGE'] . '
' . lang('Systeminfo_Network_Accept_Encoding') . '
' . $_SERVER['HTTP_ACCEPT_ENCODING'] . '
' . lang('Systeminfo_Network_Request_Method') . '
' . $_SERVER['REQUEST_METHOD'] . '
' . lang('Systeminfo_Network_Request_Time') . '
' . $_SERVER['REQUEST_TIME'] . '
'; // Services ---------------------------------------------------------- echo '

' . lang('Systeminfo_Services') . '

'; echo '
'; exec('systemctl --type=service --state=running', $running_services); echo ''; echo ''; $table_color = 'odd'; for ($x = 0; $x < sizeof($running_services); $x++) { if (stristr($running_services[$x], '.service')) { $temp_services_arr = array_values(array_filter(explode(' ', trim($running_services[$x])))); $servives_name = $temp_services_arr[0]; unset($temp_services_arr[0], $temp_services_arr[1], $temp_services_arr[2], $temp_services_arr[3]); $servives_description = implode(" ", $temp_services_arr); if ($table_color == 'odd') {$table_color = 'even';} else { $table_color = 'odd';} echo ''; } } echo ''; echo '
'; echo '
'; // USB ---------------------------------------------------------- echo '

' . lang('Systeminfo_USB_Devices') . '

'; echo ' '; $table_color = 'odd'; sort($usb_devices_mount); for ($x = 0; $x < sizeof($usb_devices_mount); $x++) { $cut_pos = strpos($usb_devices_mount[$x], ':'); $usb_bus = substr($usb_devices_mount[$x], 0, $cut_pos); $usb_dev = substr($usb_devices_mount[$x], $cut_pos + 1); if ($table_color == 'odd') {$table_color = 'even';} else { $table_color = 'odd';} echo ''; } echo ' '; echo '
'; // ---------------------------------------------------------- echo '
'; ?>