PHP Console Monitor

De Wiki levelKro
Révision datée du 25 janvier 2019 à 06:25 par LevelKro (discussion | contributions) (Page créée avec « Permet d'afficher le états des serveurs défini et de leur services (réponse). Simple affichage en console des résultats aux Ping avec personnalisation de l'affichage.... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Permet d'afficher le états des serveurs défini et de leur services (réponse). Simple affichage en console des résultats aux Ping avec personnalisation de l'affichage.

Pré-requis

  • PHP-CLI 5.4+
  • Shell (Telnet/SSH ou Prompt de commande)
  • PHP Minecraft Query API si vous désirez faire un ping d'un serveur Minecraft

Fichiers

colors.php

Pour rendre le résultat en couleur.

<?php
	class Colors {
		private $foreground_colors = array();
		private $background_colors = array();

		public function __construct() {
			// Set up shell colors
			$this->foreground_colors['black'] = '0;30';
			$this->foreground_colors['dark_gray'] = '1;30';
			$this->foreground_colors['blue'] = '0;34';
			$this->foreground_colors['light_blue'] = '1;34';
			$this->foreground_colors['green'] = '0;32';
			$this->foreground_colors['light_green'] = '1;32';
			$this->foreground_colors['cyan'] = '0;36';
			$this->foreground_colors['light_cyan'] = '1;36';
			$this->foreground_colors['red'] = '0;31';
			$this->foreground_colors['light_red'] = '1;31';
			$this->foreground_colors['purple'] = '0;35';
			$this->foreground_colors['light_purple'] = '1;35';
			$this->foreground_colors['brown'] = '0;33';
			$this->foreground_colors['yellow'] = '1;33';
			$this->foreground_colors['light_gray'] = '0;37';
			$this->foreground_colors['white'] = '1;37';

			$this->background_colors['black'] = '40';
			$this->background_colors['red'] = '41';
			$this->background_colors['green'] = '42';
			$this->background_colors['yellow'] = '43';
			$this->background_colors['blue'] = '44';
			$this->background_colors['magenta'] = '45';
			$this->background_colors['cyan'] = '46';
			$this->background_colors['light_gray'] = '47';
		}

		// Returns colored string
		public function getColoredString($string, $foreground_color = null, $background_color = null) {
			$colored_string = "";

			// Check if given foreground color found
			if (isset($this->foreground_colors[$foreground_color])) {
				$colored_string .= "\033[" . $this->foreground_colors[$foreground_color] . "m";
			}
			// Check if given background color found
			if (isset($this->background_colors[$background_color])) {
				$colored_string .= "\033[" . $this->background_colors[$background_color] . "m";
			}

			// Add string and end coloring
			$colored_string .=  $string . "\033[0m";

			return $colored_string;
		}

		// Returns all foreground color names
		public function getForegroundColors() {
			return array_keys($this->foreground_colors);
		}

		// Returns all background color names
		public function getBackgroundColors() {
			return array_keys($this->background_colors);
		}
	}

libs.php

Inclus les fonctions PHP du script.

<?php
	$services=array(
		"ftp"=>"21",
		"ssh"=>"22",
		"dns"=>"53",
		"http"=>"80",
		"https"=>"443",
		"sc"=>"8000",
		"tnet"=>"31457",
		"webmin"=>"10000",
		"sql"=>"3306",
		"source"=>"27015",
		"smtp"=>"25",
		"pop"=>"995",
		"rtmp"=>"1935",
		"mc"=>"25565",
		"mcpe"=>"19132",
		"smb"=>"445",
		"netb"=>"139",
		"proxy"=>"3128"
	);
	$names=array(
		"ftp"=>"FTP - Serveur de fichier",
		"ssh"=>"SSH - Shell de commande",
		"dns"=>"DNS - Serveur de nom de domaine (DNS)",
		"http"=>"HTTP - Serveur Web",
		"https"=>"HTTPS - Serveur Web sécurisé avec SSL ",
		"sc"=>"SHOUTCast - Serveur de streaming Audio",
		"tnet"=>"TetriNet - Serveur de jeu Tetrinet",
		"webmin"=>"Webmin/Virtualmin - Serveur de gestion",
		"sql"=>"MySQL - Base de données",
		"source"=>"Source - Serveur de jeu Source",
		"smtp"=>"SMTP - Serveur d'envoie des courriels",
		"pop"=>"POP - Service de boîte des courriels",
		"rtmp"=>"RTMP - Serveur de diffusion Flash",
		"mc"=>"Minecraft - Serveur Minecraft (Java)",
		"mcpe"=>"Minecraft PE - Serveur Minecraft Pocket Edition/Windows 10",
		"smb"=>"Samba - Réseau de partage de type Samba/Windows",
		"netbios"=>"Samba NetBIOS - Réseau de partage de type Samba/Windows avec NetBIOS",
		"proxy"=>"Proxy - Service de camouglage de l'adresse réel du client",
	);	
	
	function remoteState($host,$port){
	  	if($fp=@fsockopen($host, $port, $errno, $errstr, 20)){ $rep=true; } 
		else{ $rep=false; }
		return($rep); 
	  	@fclose($fp);
		$fp=null; $name=null; $rep=null; $port=null; $host=null;

	}	
	function remoteStateMC($host,$port){
		$json=exec("php ./mcstatus/json.php ".$host." ".$port,$ret);
		$array = json_decode($json,true);
		return (($array['status']=="Online")?true:false);
	}
	function remotePing($ip){
		$ping = exec("ping -c 1 $ip"); 
		$ping=explode("=",$ping); 
		if(!$ping[1]) return false;
		else return true;	
	}