Tópico: [Web Site] Server Status PHP
Ver um Único Post
Antigo 07-08-2013, 05:52 PM   #1
Server Status PHP
Setokaiba Setokaiba está online agora 07-08-2013, 05:52 PM

Script PHP para exibir o status do servidor, este script a cada visita do usuário no seu website, ele verifica o status do servidor a cada 30 segundos, esse script faz com que seu web site exiba o status mais rapidamente.

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
<?php
ini_set( "display_errors", 0);	//hide fsockopen/fopen warnings if file doesn't exist or couldn't connect
$g_Status = 0;

$g_Ip = "127.0.0.1";	//Server ip
$g_Port = "7777";	//Server Port

function IsOnline($ip, $port)
{
	$sock=@fsockopen($ip, $port, $errNo, $errStr, 3);//timeout set to 3 seconds
	if($sock)
	{
		fclose($sock);
		return 1;
	}
	return 0;
}

function RefreshStatus()
{
	global $g_Ip, $g_Port;
	$status = IsOnline($g_Ip, $g_Port);
	//storing info about timestamp and server status
	$file = fopen("status.txt", "wb");
	$timestamp = time() + 30;	//it will refresh every 30 seconds - won't flood the server
	$cont = $timestamp .' '. $status;
	fwrite($file, $cont);
	fclose($file);
	return $status;
}

$file = fopen("status.txt", "r");
if(!$file)
{
	//file doesn't exist
	$g_Status = RefreshStatus();
}else
{
	$cont = fread($file, filesize("status.txt"));
	$data = explode(" ", $cont);	//$data[0] is our timestamp and $data[1] is our server status
	if($data[0] < time())
	{
		//refresh status
		$g_Status = RefreshStatus();
	}else
	{
		$g_Status = $data[1];
	}
}

//Display server status
if($g_Status)
{
	echo "Online";
}else
{
	echo "Offline";
}

?>
Caso queira alterar o texto Online e Offline por imagens ex: (bolinhas, quadradinhos) verdes e vermelhos, basta alterar:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
//Display server status
if($g_Status)
{
	echo "Online";
}else
{
	echo "Offline";
}

?>
Por isso:
Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
//Display server status
if($g_Status)
{
	echo "<img src=\"pasta/status_on.png\"/>\n";
}else
{
	echo "<img src=\"pasta/status_off.png\"/>\n";
}
Criar uma pasta e alterar o caminho ali no código supracitado, onde eu defini os nomes como status_on.png e status_off.png, porém, basta customizar para o seu gosto.

 
Avatar de Setokaiba
Setokaiba
Jesus Te Ama, Mas EU Não!

Quadro de Medalhas

Registrado em: Oct 2008
Localização: 45º 33º 34º N | 122º 41º 41º W DESTINATION: ANYWHERE Adidas
Posts: 4,133
Pontos: 20,442, Nível: 90
Pontos: 20,442, Nível: 90 Pontos: 20,442, Nível: 90 Pontos: 20,442, Nível: 90
Atividade: 99%
Atividade: 99% Atividade: 99% Atividade: 99%

Nome Real: Anderson Andrade
Visitas: 200
O seguinte membro ao lado disse Obrigado(a) a : Setokaiba por gostar deste Post :
Myutsu (07-08-2013)
Links Patrocinados