true, 'cookie_secure' => true, 'use_strict_mode' => true, 'sid_length' => 128, 'sid_bits_per_character' => 6, 'gc_maxlifetime' => 1800 ]); function fetchFiveMData($url, $retry = 3) { $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_SSL_VERIFYHOST => 2, CURLOPT_FOLLOWLOCATION => true, CURLOPT_TIMEOUT => 15, CURLOPT_CONNECTTIMEOUT => 10, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 3, CURLOPT_HTTPHEADER => [ 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36', 'Accept: application/json', 'Accept-Language: en-US,en;q=0.9', 'Cache-Control: no-cache' ] ]); $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); $error = curl_error($ch); curl_close($ch); if ($error && $retry > 0) { sleep(1); return fetchFiveMData($url, $retry - 1); } if ($error) { return ['error' => "cURL Error: $error"]; } if ($httpCode !== 200) { return ['error' => "API returned HTTP code $httpCode"]; } $data = json_decode($response, true); if (json_last_error() !== JSON_ERROR_NONE) { return ['error' => "Invalid JSON response: " . json_last_error_msg()]; } return $data; } function getPlayerIdentifier($identifiers, $type) { if (empty($identifiers)) { return null; } foreach ($identifiers as $identifier) { if (strpos(strtolower($identifier), strtolower($type)) === 0) { return $identifier; } } return null; } function formatBytes($bytes, $precision = 2) { $units = ['B', 'KB', 'MB', 'GB', 'TB']; $bytes = max($bytes, 0); $pow = floor(($bytes ? log($bytes) : 0) / log(1024)); $pow = min($pow, count($units) - 1); $bytes /= pow(1024, $pow); return round($bytes, $precision) . ' ' . $units[$pow]; } function displayServerInfo($serverData) { $hostname = htmlspecialchars($serverData['Data']['hostname'] ?? 'N/A'); $endpoint = htmlspecialchars($serverData['Data']['connectEndPoints'][0] ?? 'N/A'); $port = !empty($serverData['Data']['connectEndPoints'][0]) ? explode(':', $serverData['Data']['connectEndPoints'][0])[1] ?? 'N/A' : 'N/A'; echo "
IP: {$endpoint}
"; echo "Port: {$port}
"; echo "Players: " . htmlspecialchars($serverData['Data']['clients'] ?? '0') . "/" . htmlspecialchars($serverData['Data']['svMaxclients'] ?? '0') . "
"; echo "Upvotes: " . htmlspecialchars($serverData['Data']['upvotePower'] ?? '0') . "
"; echo "Owner: " . htmlspecialchars($serverData['Data']['ownerName'] ?? 'N/A') . "
"; echo "Owner ID: " . htmlspecialchars($serverData['Data']['ownerID'] ?? 'N/A') . "
"; echo "Locale: " . htmlspecialchars($serverData['Data']['vars']['locale'] ?? 'N/A') . "
"; echo "Game: " . htmlspecialchars($serverData['Data']['vars']['gamename'] ?? 'gta5') . "
"; echo "OneSync: " . (!empty($serverData['Data']['vars']['onesync_enabled']) ? 'Enabled' : 'Disabled') . "
"; echo "License Key: " . (!empty($serverData['Data']['vars']['sv_licenseKeyToken']) ? 'Configured' : 'Not Configured') . "
"; echo "Pure Level: " . htmlspecialchars($serverData['Data']['vars']['sv_pureLevel'] ?? '0') . "
"; echo "Script Hook Allowed: " . (!empty($serverData['Data']['vars']['sv_scriptHookAllowed']) && $serverData['Data']['vars']['sv_scriptHookAllowed'] === 'true' ? 'Yes' : 'No') . "
"; echo "Enforced Build: " . htmlspecialchars($serverData['Data']['vars']['sv_enforceGameBuild'] ?? 'Not Enforced') . "
"; echo "Tags: " . htmlspecialchars($serverData['Data']['vars']['tags'] ?? 'None') . "
"; echo "Project Name: " . htmlspecialchars($serverData['Data']['vars']['sv_projectName'] ?? 'N/A') . "
"; echo "Project Description: " . htmlspecialchars($serverData['Data']['vars']['sv_projectDesc'] ?? 'N/A') . "
"; echo "" . htmlspecialchars($key) . ": " . htmlspecialchars($value) . "
"; } echo "| Name | ID | Ping | Identifiers |
|---|---|---|---|
| {$name} | "; echo "{$id} | "; echo "{$ping} ms | "; echo "";
if (!empty($player['identifiers'])) {
echo " ";
foreach ($player['identifiers'] as $identifier) {
if (!empty($identifier)) {
$parts = explode(':', $identifier, 2);
$identifierType = strtoupper($parts[0] ?? '');
$identifierValue = $parts[1] ?? '';
echo " ";
} else {
echo "N/A";
}
echo "";
echo "{$identifierType}";
echo "" . htmlspecialchars($identifierValue) . "";
echo " ";
}
}
echo "{$identifier} ";
echo " | ";
echo "
Name: " . htmlspecialchars($player['name'] ?? 'N/A') . "
"; echo "Player ID: " . htmlspecialchars($player['id'] ?? 'N/A') . "
"; echo "Ping: " . htmlspecialchars($player['ping'] ?? 'N/A') . " ms
"; $license = getPlayerIdentifier($player['identifiers'] ?? [], 'license'); $steam = getPlayerIdentifier($player['identifiers'] ?? [], 'steam'); $discord = getPlayerIdentifier($player['identifiers'] ?? [], 'discord'); $xbl = getPlayerIdentifier($player['identifiers'] ?? [], 'xbl'); $live = getPlayerIdentifier($player['identifiers'] ?? [], 'live'); $fivem = getPlayerIdentifier($player['identifiers'] ?? [], 'fivem'); $ip = getPlayerIdentifier($player['identifiers'] ?? [], 'ip'); echo "FiveM License: " . ($license ? htmlspecialchars($license) : 'N/A') . "
"; echo "Steam ID: " . ($steam ? htmlspecialchars($steam) : 'N/A') . "
"; echo "Discord ID: " . ($discord ? htmlspecialchars($discord) : 'N/A') . "
"; echo "XBL ID: " . ($xbl ? htmlspecialchars($xbl) : 'N/A') . "
"; echo "Live ID: " . ($live ? htmlspecialchars($live) : 'N/A') . "
"; echo "FiveM ID: " . ($fivem ? htmlspecialchars($fivem) : 'N/A') . "
"; echo "IP Address: " . ($ip ? htmlspecialchars($ip) : 'N/A') . "
"; echo "| Type | Value | Action |
|---|---|---|
| {$type} | "; echo "" . htmlspecialchars($value) . " | "; echo ""; echo ""; echo " | "; echo "
Server Name: " . htmlspecialchars($serverData['Data']['hostname'] ?? 'N/A') . "
"; echo "Server IP: " . htmlspecialchars($serverData['Data']['connectEndPoints'][0] ?? 'N/A') . "
"; echo "Players Online: " . htmlspecialchars($serverData['Data']['clients'] ?? '0') . "/" . htmlspecialchars($serverData['Data']['svMaxclients'] ?? '0') . "
"; echo "Name:
Players: /
CFX Code: