public function getServer($id) { $players_array = []; $mods_array = []; $server = Server::find($id); if (!$server) { return Response::json(['error' => 'No mod with that ID found.']); } $server_status = ServerStatus::where('server_id', $id)->first(); if (!$server->player_list_hide) { $raw_players = json_decode($server_status->players); if ($raw_players) { foreach ($raw_players as $player) { $players_array[] = ['name' => preg_replace('/\\x{00A7}.{1}/u', '', $player->name)]; } } } if ($server_status->mods) { $raw_mods = json_decode($server_status->mods); foreach ($raw_mods->modList as $mod) { $mods_array[] = ['name' => htmlspecialchars($mod->modid), 'version' => $mod->version]; } } if ($server->server_address_hide) { $server_address = 'Hidden'; } else { $server_address = $server->ip_host . ':' . $server->port; } $result = ['id' => $server->id, 'modpack_id' => $server->modpack_id, 'name' => $server->name, 'short_description' => $server->deck, 'server_address' => $server_address, 'country' => $server->country, 'permissions' => $server->permissions, 'website' => $server->wiki_link, 'application_url' => $server->description, 'description' => $server->slug, 'players' => $players_array, 'mods' => $mods_array, 'server_address_hide' => $server->server_address_hide, 'player_list_hide' => $server->player_list_hide, 'slug' => $server->slug, 'last_world_reset' => $server->last_world_reset, 'next_world_reset' => $server->next_world_reset, 'created_at' => $server->created_at, 'updated_at' => $server->updated_at]; return Response::json($result); }
<div class="well"> <?php if ($query_to_use == 'false') { ?> <h3>Players online</h3> <?php } else { ?> <h3>Server Status</h3> <?php } $servers = $queries->getWhere("mc_servers", array("display", "=", "1")); if ($query_to_use == 'false') { // Built in query, continue as normal require 'inc/integration/status/server.php'; $serverStatus = new ServerStatus(); } else { // External query $cache = new Cache(); } foreach ($servers as $server) { $pre17 = $server->pre; $parts = explode(':', $server->ip); if (count($parts) == 1) { $domain = $parts[0]; $query_ip = SRVResolver($domain); $parts = explode(':', $query_ip); $server_ip = $parts[0]; $server_port = $parts[1]; } else { if (count($parts) == 2) {
$smarty->assign('TIMER', $Timer . $time_language['seconds_short']); } else { $smarty->assign('TIMER', 'n/a'); } if ($external_query == 'false') { $smarty->assign('PLAY_TITLE', str_replace(':', '', $general_language['players_online'])); } else { $smarty->assign('PLAY_TITLE', $general_language['server_status']); } // Loop through defined servers and query them $server_status_string = ''; $servers = $queries->getWhere('mc_servers', array('display', '=', 1)); if ($external_query == 'false') { // Built in query, continue as normal require 'core/integration/status/server.php'; $serverStatus = new ServerStatus(); } foreach ($servers as $server) { $pre17 = $server->pre; $parts = explode(':', $server->query_ip); if (count($parts) == 1) { $domain = $parts[0]; $server_ip = $parts[0]; $server_port = 25565; } else { if (count($parts) == 2) { $server_ip = $parts[0]; $server_port = $parts[1]; } else { echo 'Invalid Query IP'; die;
public function __construct($vals = null) { if (!isset(self::$_TSPEC)) { self::$_TSPEC = array(1 => array('var' => 'pause', 'type' => TType::BOOL), 2 => array('var' => 'active', 'type' => TType::I16), 3 => array('var' => 'queue', 'type' => TType::I16), 4 => array('var' => 'total', 'type' => TType::I16), 5 => array('var' => 'speed', 'type' => TType::I32), 6 => array('var' => 'download', 'type' => TType::BOOL), 7 => array('var' => 'reconnect', 'type' => TType::BOOL)); } if (is_array($vals)) { if (isset($vals['pause'])) { $this->pause = $vals['pause']; } if (isset($vals['active'])) { $this->active = $vals['active']; } if (isset($vals['queue'])) { $this->queue = $vals['queue']; } if (isset($vals['total'])) { $this->total = $vals['total']; } if (isset($vals['speed'])) { $this->speed = $vals['speed']; } if (isset($vals['download'])) { $this->download = $vals['download']; } if (isset($vals['reconnect'])) { $this->reconnect = $vals['reconnect']; } } }
if (isset($_POST['AddFriend'])) { $user->addfriend($user->data()->id, $profile_user[0]->id); } if (isset($_POST['RemoveFriend'])) { $user->removefriend($user->data()->id, $profile_user[0]->id); } } $servers = $queries->getWhere("mc_servers", array("display", "=", "1")); // Are we using the built-in query or an external API? $query_to_use = $queries->getWhere('settings', array('name', '=', 'external_query')); $query_to_use = $query_to_use[0]->value; if ($query_to_use == 'false') { define('MQ_TIMEOUT', 1); require 'core/integration/status/MinecraftServerPing.php'; require 'core/integration/status/server.php'; $serverStatus = new ServerStatus(); foreach ($servers as $server) { $parts = explode(':', $server->ip); if (count($parts) == 1) { $server_ip = htmlspecialchars($parts[0]); $server_port = 25565; } else { if (count($parts) == 2) { $server_ip = htmlspecialchars($parts[0]); $server_port = htmlspecialchars($parts[1]); } else { echo 'Invalid IP</div>'; die; } } if ($serverStatus->isOnline($server_ip, $server_port, $mcname) === true) {
* This script will be executed some time (every 24 hours for example). * It will do some tasks like delete depecrated cache, etc... */ // Configuring server error_reporting(E_ALL); set_time_limit(-1); // Load KernelWeb main core include '../../KernelWeb/rel/main.php'; // Start loader time ServerStatus::calcTime(); /* * CONFIGURATIONS */ // CACHE $dir_cache = kw::$app_dir . 'cache'; $max_life_cache = 86400; /* * HERE GOES THE CRON */ // CACHE // Delete depecreated cache (with more than 24 h) // If you wish, you can specify some directorys to not delete echo "Deleting cache in with more than : " . $dir_cache . "<br />\n"; DirectoryManager::delete($dir_cache, false, true, true, $max_life_cache); /* * END CRON */ // End test time echo "\n\n<br /><br /><hr />"; ServerStatus::calcTime();
<div class="server-status"> <?php # Require no arquivo da classe. require "server_status_class.php"; # Instanciar a classe ServerStatus com os parâmetros: (IP, Usuário, Senha, Banco de Dados). $status = new ServerStatus($host, $user, $userpass, $database); # Se $status->getLoginStatus() retornar algum valor, imprime Online. echo "<div class='server-info'>"; if ($status->getLoginStatus()) { echo "<img class='img-status'src='" . get_bloginfo(template_url) . "/status/login-on.gif'/>"; } else { echo "<img class='img-status'src='" . get_bloginfo(template_url) . "/status/login-off.gif'/>"; } # Quebra de linha HTML. # Se $status->getCharStatus() retornar algum valor, imprime Online. if ($status->getCharStatus()) { echo "<img class='img-status'src='" . get_bloginfo(template_url) . "/status/char-on.gif'/>"; } else { echo "<img class='img-status'src='" . get_bloginfo(template_url) . "/status/char-off.gif'/>"; } # Quebra de linha HTML. # Se $status->getMapStatus() retornar algum valor, imprime Online. if ($status->getMapStatus()) { echo "<img class='img-status'src='" . get_bloginfo(template_url) . "/status/map-on.gif'/>"; } else { echo "<img class='img-status'src='" . get_bloginfo(template_url) . "/status/map-off.gif'/>"; } # Quebra de linha HTML. # Imprime o número de usuários Online. $dados = array_shift($status->getUsersOnline($con));
<?php include './ServerStatus.class.php'; header('content-type:text/plain'); //Server status test script $ss = new ServerStatus(); var_dump($ss->ServerStatus($_GET['hostname'], $_GET['port'], false));
public function getServerMods($id) { $mods_array = []; $server_status = ServerStatus::select('id', 'server_id', 'mods')->where('server_id', $id)->first(); $raw_mods = json_decode($server_status->mods); if ($raw_mods) { foreach ($raw_mods->modList as $mod) { $mods_array[] = ['name' => htmlspecialchars($mod->modid), 'version' => $mod->version]; } } return $this->buildDTServerModOutput($mods_array); }
public function postEdit($id, $password = null) { $logged_in = false; $server_user = false; if (Auth::check()) { $logged_in = true; } $server = Server::find($id); if (!$server) { return Redirect::action('ServerController@getServers'); } if ($server->user_id == 0) { $server_user = $server->serverUser; if (!Hash::check($password, $server_user->edit_password)) { return Redirect::route('index'); } } else { if (!Auth::check()) { return Redirect::to(action('UserController@getLogin') . '?return=server/edit/' . $id); } if (Auth::id() != $server->user_id && !$this->checkRoute()) { return Redirect::route('index'); } } $versions = MinecraftVersion::all(); $title = 'Edit Server - ' . $this->site_name; $countries = Server::countryList(); $permissions = [1 => 'Whitelist', 2 => 'Greylist', 3 => 'Open']; $input = Input::only('name', 'modpack', 'email', 'deck', 'website', 'application_url', 'description', 'slug', 'server_address_hide', 'player_list_hide', 'motd_hide', 'server_address', 'selected_tags', 'country', 'permissions', 'last_world_reset', 'next_world_reset', 'active', 'email_alerts'); $modpack = Modpack::find($input['modpack']); $modpack_version = $modpack->version->name; if (preg_match('/:/', $input['server_address'])) { $exploded_hostname = explode(':', $input['server_address']); $server_host = $exploded_hostname[0]; $server_port = $exploded_hostname[1]; } else { $server_host = $input['server_address']; $server_port = 25565; } $input['server_host'] = $server_host; $server_info = Server::check($server_host, $server_port, $modpack_version); $validator_messages = ['name.unique' => 'A server with this name already exists in the database.', 'server_host.unique' => 'A server with this address already exists in the database.', 'country.not_in' => 'The country field is required.', 'deck.required' => 'The short description field is required.', 'deck.max' => 'The short description may not be greater than 255 characters.', 'url' => 'The :attribute field is not a valid URL.']; $validator_rules = ['name' => 'required|unique:servers,name,' . $server->id, 'server_host' => 'required|unique:servers,ip_host,' . $server->id . ',id,port,' . $server_port, 'deck' => 'required|max:255', 'website' => 'url', 'application_url' => 'url', 'selected_tags' => 'required', 'country' => 'required|not_in:choose,separator1,separator2', 'permissions' => 'required', 'last_world_reset' => 'date_format:Y-m-d', 'next_world_reset' => 'date_format:Y-m-d']; if (!$logged_in) { $validator_rules['email'] = 'required|email'; } $validator = Validator::make($input, $validator_rules, $validator_messages); if (!$server_info) { $validator->fails(); //manually fail the validator since we can't reach the server $validator->getMessageBag()->add('server_address', 'Unable to reach server.'); if (!$logged_in) { return Redirect::action('ServerController@getEdit', [$id, $password])->withErrors($validator)->withInput(); } return Redirect::action('ServerController@getEdit', [$id])->withErrors($validator)->withInput(); } elseif ($validator->fails()) { if (!$logged_in) { return Redirect::action('ServerController@getEdit', [$id, $password])->withErrors($validator)->withInput(); } return Redirect::action('ServerController@getEdit', [$id])->withErrors($validator)->withInput(); } $server->modpack_id = $modpack->id; $server->user_id = Auth::id(); $server->minecraft_version_id = $modpack->minecraft_version_id; $server->name = $input['name']; $server->ip_host = $server_host; $server->port = $server_port; $server->deck = $input['deck']; $server->country = $input['country']; $server->permissions = $input['permissions']; $server->website = $input['website']; $server->application_url = $input['application_url']; $server->description = $input['description']; $server->last_world_reset = $input['last_world_reset']; $server->next_world_reset = $input['next_world_reset']; $server->last_check = Carbon\Carbon::now()->toDateTimeString(); $server->active = 0; if ($input['active'] == 1) { $server->active = 1; } $server->email_alerts = 0; if ($input['email_alerts'] == 1) { $server->email_alerts = 1; } $server->server_address_hide = 0; if ($input['server_address_hide'] == 1) { $server->server_address_hide = 1; } $server->player_list_hide = 0; if ($input['player_list_hide'] == 1) { $server->player_list_hide = 1; } $server->motd_hide = 0; if ($input['motd_hide'] == 1) { $server->motd_hide = 1; } if ($input['slug'] == '') { $slug = Str::slug($input['name']); } else { $slug = $input['slug']; } $server->slug = $slug; $server->last_ip = Request::getClientIp(); $success = $server->save(); if ($success) { foreach ($server->tags as $t) { $server->tags()->detach($t->id); } $server->tags()->attach($input['selected_tags']); $server_status = ServerStatus::where('server_id', $server->id)->first(); $server_status->server_id = $server->id; if (isset($server_info['players']['online'])) { $server_status->current_players = $server_info['players']['online']; } elseif (isset($server_info['Players'])) { $server_status->current_players = $server_info['Players']; } if (isset($server_info['players']['max'])) { $server_status->max_players = $server_info['players']['max']; } elseif (isset($server_info['MaxPlayers'])) { $server_status->max_players = $server_info['MaxPlayers']; } $server_status->last_success = Carbon\Carbon::now()->toDateTimeString(); if (isset($server_info['modinfo'])) { $server_status->mods = json_encode($server_info['modinfo']); } if (isset($server_info['players']['sample'])) { $server_status->players = json_encode($server_info['players']['sample']); } $success = $server_status->save(); if ($success) { if (!$logged_in) { $server_user = ServerUser::where('server_id', $server->id)->first(); $server_user->email = $input['email']; $server_user->last_ip = Request::getClientIp(); } $updated_server = Server::find($id); foreach ($updated_server->tags as $t) { $selected_tags[] = $t->id; } if ($updated_server->last_world_reset == '0000-00-00') { $updated_server->last_world_reset = null; } if ($updated_server->next_world_reset == '0000-00-00') { $updated_server->next_world_reset = null; } return View::make('servers.edit', ['chosen' => true, 'versions' => $versions, 'countries' => $countries, 'permissions' => $permissions, 'title' => $title, 'server' => $updated_server, 'server_user' => $server_user, 'password' => $password, 'selected_tags' => $selected_tags, 'success' => true, 'datepicker' => true]); } if (!$logged_in) { return Redirect::action('ServerController@getEdit', [$id, $password])->withErrors(['message' => 'Unable to edit server.'])->withInput(); } return Redirect::action('ServerController@getEdit', [$id])->withErrors(['message' => 'Unable to edit server.'])->withInput(); } if (!$logged_in) { return Redirect::action('ServerController@getEdit', [$id, $password])->withErrors(['message' => 'Unable to edit server.'])->withInput(); } return Redirect::action('ServerController@getEdit', [$id])->withErrors(['message' => 'Unable to edit server.'])->withInput(); }
} // we don't want to count AJAX scripts/guild images as page views, we also don't need status if (!ONLY_PAGE) { // STATUS CHECKER $statustimeout = 1; foreach (explode("*", str_replace(" ", "", $config['server']['statustimeout'])) as $status_var) { if ($status_var > 0) { $statustimeout = $statustimeout * $status_var; } } $statustimeout = $statustimeout / 1000; $config['status'] = parse_ini_file('cache/DONT_EDIT_serverstatus.txt'); if ($config['status']['serverStatus_lastCheck'] + $statustimeout < time()) { $config['status']['serverStatus_checkInterval'] = $statustimeout + 3; $config['status']['serverStatus_lastCheck'] = time(); $statusInfo = new ServerStatus('127.0.0.1', $config['server']['status_port'], 1); if ($statusInfo->isOnline()) { $config['status']['serverStatus_online'] = 1; $config['status']['serverStatus_players'] = $statusInfo->getPlayersCount(); $config['status']['serverStatus_playersMax'] = $statusInfo->getPlayersMaxCount(); $h = floor($statusInfo->getUptime() / 3600); $m = floor(($statusInfo->getUptime() - $h * 3600) / 60); $config['status']['serverStatus_uptime'] = $h . 'h ' . $m . 'm'; $config['status']['serverStatus_monsters'] = $statusInfo->getMonsters(); } else { $config['status']['serverStatus_online'] = 0; $config['status']['serverStatus_players'] = 0; $config['status']['serverStatus_playersMax'] = 0; } $file = fopen("cache/DONT_EDIT_serverstatus.txt", "w"); $file_data = '';
/** * * @return string HTML string for a clock */ function clock() { // Show the Eve time. if (config::get('show_evestatus')) { $sstatus = new ServerStatus(); return $sstatus->display(); } else { if (config::get('show_clock')) { $this->page->addOnLoad("setInterval('updateClock()', 60000 )"); $clock = new Clock(); return $clock->generate(); } } }
<?php /** * Example code for PHP Server Status * @author Lee Findlow <*****@*****.**> */ //Include Class include './ServerStatus.class.php'; //Initialise Class $ss = new ServerStatus(); //Config $cfg['host'] = empty($_GET['host']) ? 'leefindlow.com' : $_GET['host']; $cfg['services'][0] = array('name' => 'Web Server', 'port' => 80, 'description' => 'Checking if a web server, such as Apache is running.'); $cfg['services'][1] = array('name' => 'SSH', 'port' => 22, 'description' => 'Checking if a Secure SHell servcie is running for remote access.'); $cfg['services'][2] = array('name' => 'MySQL', 'port' => 3306, 'description' => 'Checking if there is a MySQL database server running.'); $cfg['services'][3] = array('name' => 'SMTP', 'port' => 25, 'description' => 'Checking if there is an SMTP server running.'); $cfg['services'][4] = array('name' => 'FTP', 'port' => 21, 'description' => 'Checking if there is an FTP server running to allow file transfers.'); $cfg['services'][5] = array('name' => 'Telnet', 'port' => 23, 'description' => 'Checking if there is a Telnet server running to allow (unsecure) remote access.'); ?> <!DOCTYPE html> <html> <head> <title>PHP Server Status</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <style type="text/css" media="screen">@import "./style.css";</style> <meta name="author" content="Lee Findlow <*****@*****.**>"> <meta name="keywords" content="server,status,ping,server status,status checker,server checker"> <meta name="description" content="PHP Script to allow the checking of the status of a Server."> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-7364000-1']);
public function fire($job, $data) { Config::set('services.mandrill.secret', 'J3gPgh8LNHx4Paw-a7j26g'); //since we are outside of nginx, no env variables $cache_key = 'server-update-version-cache'; if (Cache::has($cache_key)) { $versions = Cache::get($cache_key); } else { $versions = []; $raw_versions = MinecraftVersion::select('id', 'name')->get(); foreach ($raw_versions as $v) { $key = $v->id; $versions[$key] = $v->name; } Cache::put($cache_key, $versions, 60); } $server = Server::find($data['server_id']); $server_status = ServerStatus::where('server_id', $server->id)->first(); $server_version_id = $server->minecraft_version_id; $version = $versions[$server_version_id]; $server_query = Server::check($server->ip_host, $server->port, $version); $current_timestamp = Carbon\Carbon::now()->toDateTimeString(); if ($server_query) { if (isset($server_query['players']['online'])) { $server_status->current_players = $server_query['players']['online']; } elseif (isset($server_query['Players'])) { $server_status->current_players = $server_query['Players']; } if (isset($server_query['players']['max'])) { $server_status->max_players = $server_query['players']['max']; } elseif (isset($server_query['MaxPlayers'])) { $server_status->max_players = $server_query['MaxPlayers']; } if (isset($server_query['modinfo'])) { $server_status->mods = json_encode($server_query['modinfo']); } if (isset($server_query['players']['sample'])) { $server_status->players = json_encode($server_query['players']['sample']); } $server_status->failed_attempts = 0; $server_status->failed_checks = 0; $server_status->last_success = $current_timestamp; } else { $server_status->failed_attempts = $server_status->failed_attempts + 1; $server_status->last_failure = $current_timestamp; if ($server_status->failed_attempts >= Config::get('app.server_failed_attempts')) { $server_status->failed_checks = $server_status->failed_checks + 1; $server_status->total_failed_checks = $server_status->total_failed_checks + 1; $server_status->failed_attempts = 0; } if ($server_status->failed_checks >= Config::get('app.server_failed_disable')) { $server->active = 0; $server_status->current_players = 0; $server_status->max_players = 0; if ($server->email_alerts) { $message_array = ['server_name' => $server->name, 'user' => $server->user]; Mail::send('emails.disabled_server', array('server' => $server, 'site_url' => Config::get('app.url')), function ($message) use($message_array) { $message->from('*****@*****.**', 'Modpack Index'); $message->to($message_array['user']->email, $message_array['user']->username)->subject('Server Deactivated: ' . $message_array['server_name']); }); } } } $server_status->total_checks = $server_status->total_checks + 1; $server_status->last_check = $current_timestamp; $server_status->save(); $server->queued = 0; $server->last_check = $current_timestamp; $server->save(); $job->delete(); }