= 1688169600) {
peh_error("Page not found: computers", 404);
}
require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/init.inc"; global $title; global $isLoggedIn; global $lang; global $pages; global $pagename; global $_USER; global $_PROFILE;
$computer = [];
$parts = explode("/", $pagename);
$names = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/computers/names.json"), true);
if (isset($parts[1])) {
if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/computers/metadata/" . $parts[1] . ".json")) {
$computer = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/computers/metadata/" . $parts[1] . ".json"), true);
$id = $parts[1];
$owner = explode("-", $id)[0];
if (count($parts) > 2) {
$title = "Remote control · " . ($names[$id] ?? $computer["host"]) . " · " . $title;
} else {
$title = ($names[$id] ?? $computer["host"]) . " · " . $title;
}
} else {
header("Location: /-/computers");
die();
}
}
if (isset($parts[2]) && $parts[2] !== "control") {
header("Location: /-/computers/" . $parts[1]);
die();
}
$parts = array_values(array_filter($parts, function ($i) {
return $i !== "-";
}));
if (count($parts) === 2 || count($parts) === 3) {
array_unshift($parts, null);
}
if (isset($computer["os"]) && str_ends_with($computer["os"], "unknown")) {
$computer["os"] = trim(substr($computer["os"], 0, -7));
}
if (isset($computer["os"]) && str_ends_with($computer["os"], "rolling")) {
$computer["os"] = trim(substr($computer["os"], 0, -7));
}
require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/components/header.inc';
?>
We are unable to give you access to this device.
This computer is running Luna version 1.0.0. This version of Luna is considered malware because of inconspicuous behavior and is therefore not usable anymore and has been disabled. This means you cannot access this computer at the moment.
Update this device to run Luna 1.1.0 or newer and try again.Owner: | = $owner === "raindrops" ? "Raindrops System" : "Cloudburst System" ?> | |
Luna version: | = $computer["luna_version"] ?> ( DSB = $computer["dsb"]["version"] ?? 0 ?>) (legacy) | |
System: | = $computer["os"] ?> | |
OS kernel: | = $computer["kernel"] ?> | |
Serial: | = $computer["serial"] ?> (= $computer["serial_source"] === "hardware" ? "logic board" : "OS" ?>) | - |
Status: | Online | Last seen = timeAgo($computer["date"]) ?>: = date('j M, g:ia (T)', strtotime($computer["date"])) ?> |
Processors and graphics |
|
Main processor: | = trim(($computer["cpu"]["manufacturer"] ?? "") . " " . ($computer["cpu"]["brand"] ?? "") . " " . ($computer["cpu"]["model"] ?? "")) ?> (= $computer["cpu"]["speed"] ?? "" ?> GHz) |
Processor threading: | 1): ?>= $computer["cpu"]["processors"] ?> processor= $computer["cpu"]["processors"] > 1 ? "s" : "" ?>, = $computer["cpu"]["physicalCores"] ?> core= $computer["cpu"]["physicalCores"] > 1 ? "s" : "" ?>= isset($computer["cpu"]["efficiencyCores"]) && isset($computer["cpu"]["performanceCores"]) && $computer["cpu"]["efficiencyCores"] !== 0 && $computer["cpu"]["performanceCores"] !== 0 ? " (" . $computer["cpu"]["efficiencyCores"] . " efficiency, " . $computer["cpu"]["performanceCores"] . " performance)" : "" ?>, = $computer["cpu"]["cores"] ?> thread= $computer["cpu"]["cores"] > 1 ? "s" : "" ?> |
Hardware virtualization: | = isset($computer["cpu"]["virtualization"]) ? ($computer["cpu"]["virtualization"] ? "Capable" : "Disabled") : "Unknown" ?> |
Level 1 cache: | = round($computer["cpu"]["cache"]["l1i"] / 1024, 2) ?> KiB (instruction), = round($computer["cpu"]["cache"]["l1d"] / 1024, 2) ?> KiB (data) |
Level 2 cache: | = isset($computer["cpu"]["cache"]["l2"]) && is_numeric($computer["cpu"]["cache"]["l2"]) ? round($computer["cpu"]["cache"]["l2"] / 1024**2, 2) . " MiB" : "Not supported" ?> |
Level 3 cache: | = isset($computer["cpu"]["cache"]["l3"]) && is_numeric($computer["cpu"]["cache"]["l3"]) ? round($computer["cpu"]["cache"]["l3"] / 1024**2, 2) . " MiB" : "Not supported" ?> |
Graphics processor= count($computer["gpu"]["controllers"]) > 1 ? "s" : "" ?>: |
= $controller["bus"] ?> = $controller["model"] ?> (= $controller["cores"] ?> cores, = $controller["vramDynamic"] ? "dynamic graphics memory" : $controller["vram"] . " MiB" ?>)
= $index < count($computer["gpu"]["controllers"]) - 1 ? " " : "" ?> |
Display= count($computer["gpu"]["displays"]) > 1 ? "s" : "" ?>: |
= $display["connection"] ?> = $display["vendor"] ?> = $display["model"] ?> (= $display["currentResX"] ?>x= $display["currentResY"] ?>= $display["currentResX"] !== $display["resolutionX"] ? ", native " . $display["resolutionX"] . "x" . $display["resolutionY"] : "" ?>, = $display["currentRefreshRate"] ?> Hz)
= $index < count($computer["gpu"]["displays"]) - 1 ? " " : "" ?> |
System memory |
|
Physical memory: | = round($computer["ram"]["total"] / 1024**3, 2) ?> GiB (= round($computer["ram"]["used"] / 1024**2, 2) ?> MiB used, = round($computer["ram"]["free"] / 1024**2, 2) ?> MiB free) |
Memory usage: | = round($computer["ram"]["active"] / 1024**2, 2) ?> MiB active, = round($computer["ram"]["available"] / 1024**2, 2) ?> MiB available, = round($computer["ram"]["buffcache"] / 1024**2, 2) ?> MiB cache |
Swap memory: | = round($computer["ram"]["swaptotal"] / 1024**3, 2) ?> GiB (= round($computer["ram"]["swapused"] / 1024**2, 2) ?> MiB used, = round($computer["ram"]["swapfree"] / 1024**2, 2) ?> MiB free) |
RAM chips: |
= $chip["manufacturer"] ?> = round($chip["size"] / 1024**2, 2) ?> MiB = $chip["type"] ?>
= $index < count($computer["ram_chips"]) - 1 ? " " : "" ?> |
Battery |
|
Battery model: | = preg_replace("/ +/", " ", trim($computer["battery"]["manufacturer"] . " " . $computer["battery"]["type"] . " " . $computer["battery"]["model"])) ?> |
Charge level: | = $computer["battery"]["percent"] ?>%= $computer["battery"]["acConnected"] ? ", plugged in" : "" ?> (= round($computer["battery"]["voltage"], 2) ?> V) |
Cycles: | = $computer["battery"]["cycleCount"] ?> |
Remaining capacity: | = round($computer["battery"]["currentCapacity"], 2) ?>/= round($computer["battery"]["maxCapacity"], 2) ?> = $computer["battery"]["capacityUnit"] ?> 0): ?> (designed for = $computer["battery"]["designedCapacity"] ?> = $computer["battery"]["capacityUnit"] ?> 0): ?>, = round(($computer["battery"]["maxCapacity"] / $computer["battery"]["designedCapacity"]) * 100, 2) ?>% left) |
This device does not contain a battery. | |
This operating system does not support reporting battery info. | |
Operating system |
|
System: | = $computer["os_info"]["distro"] ?> = $computer["os_info"]["release"] === "unknown" || $computer["os_info"]["release"] === "rolling" ? "" : $computer["os_info"]["release"] ?> |
CPU architecture: | = $computer["os_info"]["arch"] ?> |
Kernel version: | = $computer["os_info"]["kernel"] ?> |
Code page: | = $computer["os_info"]["codepage"] ?> |
Build number: | = $computer["os_info"]["build"] === "rolling" ? "Rolling release" : $computer["os_info"]["build"] ?> |
Serial number: | = $computer["os_info"]["serial"] ?> |
Startup interface: | = $computer["os_info"]["uefi"] ? "UEFI" : "BIOS (legacy)" ?> |
Software versions |
|
= match ($software) { "kernel" => "OS kernel", "systemOpenssl" => $computer["versions"]["systemOpensslLib"], "npm" => "NPM", "yarn" => "Yarn", "gulp" => "Gulp", "grunt" => "Grunt", "git" => "Git", "tsc" => "TypeScript", "mysql" => "MySQL", "redis" => "Redis", "mongodb" => "MongoDB", "apache" => "Apache HTTPD", "php" => "PHP", "docker" => "Docker", "postfix" => "Postfix SMTP Server", "postgresql" => "PostgreSQL", "perl" => "Perl", "python" => "Python (legacy)", "python3" => "Python", "pip" => "PIP (legacy)", "pip3" => "PIP", "java" => "Java", "gcc" => "C compiler", "virtualbox" => "VirtualBox", "bash" => "Bash", "zsh" => "zsh", "fish" => "Fish", "powershell" => "PowerShell", "dotnet" => ".NET", default => $software, } ?>: | = $version ?> |
You can remotely control this device. Open remote device.
Note: The user of this device will need to approve your connection request before you can see and control their screen.
TTY | Command | User | Open | Type |
---|---|---|---|---|
= $user["tty"] ?> | = str_replace("�", "", $user["command"]) ?> | = $user["user"] ?> | = $user["date"] . " " . $user["time"] ?> | = trim($user["ip"]) === "" || trim($user["ip"]) === ":1" || trim($user["ip"]) === "::1" ? "Local" : "Remote (" . $user["ip"] . ")" ?> |
Device | Mount point | Type | Used | Free | Total |
---|---|---|---|---|---|
= $fs["fs"] ?> | = $fs["mount"] ?> | = $fs["type"] ?> | = prettySize($fs["used"]) ?> (= $fs["use"] ?>%) | = prettySize($fs["available"]) ?> | = prettySize($fs["size"]) ?> |
Type | Manufacturer | Name | Default | Connection |
---|---|---|---|---|
= trim($device["type"]) === "" ? "Device" : $device["type"] ?> | = $device["manufacturer"] ?> | = $device["name"] ?> | = $device["default"] ? "Yes" : "" ?> | = trim($device["channel"]) === "" ? "Virtual" : $device["channel"] ?> |
Interface | State | IP addresses | MAC address | Type | Internal | Virtual | DHCP |
---|---|---|---|---|---|---|---|
= $iface["ifaceName"] ?> | = $iface["operstate"] === "up" ? "Active" : ($iface["operstate"] === "down" ? "Inactive" : "") ?> | = trim($iface["ip4"] !== "") ? $iface["ip4"] : "" ?>= trim($iface["ip6"] !== "") ? (trim($iface["ip4"] !== "") ? ", " : "") . $iface["ip6"] : "" ?> | = trim($iface["mac"] !== "") ? $iface["mac"] : "" ?> | = $iface["type"] === "wireless" ? "Wireless" : "Wired" ?> | = isset($iface["internal"]) && $iface["internal"] ? "Yes" : "" ?> | = $iface["virtual"] ? "Yes" : "" ?> | = $iface["dhcp"] ? "Yes" : "" ?> |
State | Protocol | Source | Destination | Process |
---|---|---|---|---|
= match ($connection["state"]) { "ESTABLISHED" => "Connected", "LISTEN" => "Listening", "CLOSING" => "Terminating", "UNKNOWN" => "?", "LAST_ACK", "FIN_WAIT2", "TIME_WAIT" => "Waiting", "FIN_WAIT1", "CLOSE_WAIT" => "Closing", "SYN_RECV" => "Received", "SYN_SENT" => "Attempting", default => $connection["state"], } ?> | = match ($connection["protocol"]) { "tcp4" => "TCP over IPv4", "tcp6" => "TCP over IPv6", "tcp46" => "TCP over IPv4 and IPv6", "udp4" => "UDP over IPv4", "udp6" => "UDP over IPv6", "udp46" => "UDP over IPv4 and IPv6", default => $connection["protocol"], } ?> | = $connection["localAddress"] === "*" ? "<all>" : match ($connection["localAddress"]) { "127.0.0.1" => "<local IPv4>", "::1" => "<local IPv6>", default => $connection["localAddress"], } ?> (port = $connection["localPort"] ?>) | = $connection["peerAddress"] === "*" ? "<all>" : match ($connection["peerAddress"]) { "127.0.0.1" => "<local IPv4>", "::1" => "<local IPv6>", default => $connection["localAddress"], } ?> (= $connection["peerPort"] ?>) | 0) { echo($f[0]["name"] . " [" . $connection["pid"] . "]"); } else { echo($connection["pid"]); } ?> |
PID | Name | CPU | RAM | User | Started |
---|---|---|---|---|---|
= $process["pid"] ?> | = $process["name"] ?> | = round($process["cpu"] ?? 0, 2) ?>% | = round($process["ram"], 2) ?>% | = $process["user"] ?> | = isset($process["date"]) ? timeAgo($process["date"]) : "" ?> |
Click on a device to view information about it