Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
0
		  <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) {
Ejemplo n.º 3
0
    $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;
Ejemplo n.º 4
0
 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'];
         }
     }
 }
Ejemplo n.º 5
0
    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) {
Ejemplo n.º 6
0
 * 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();
Ejemplo n.º 7
0
<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));
Ejemplo n.º 8
0
<?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));
Ejemplo n.º 9
0
 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);
 }
Ejemplo n.º 10
0
 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();
 }
Ejemplo n.º 11
0
}
// 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 = '';
Ejemplo n.º 12
0
 /**
  *
  * @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();
         }
     }
 }
Ejemplo n.º 13
0
<?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']);
Ejemplo n.º 14
0
 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();
 }