Calificación:
  • 1 voto(s) - 4 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Estado servidores CS
#1
Les dejo este pequeño "modulo" que había subido en una pagina de Datalife Engine pero puede ser usado en cualquier CMS o pagina normal. La función es simple, permite mostrar el estado, ip/puerto, nombre del mapa y jugadores de cualquier servidor de Counter-Strike 1.6 actual.

[Imagen: Cpjoa.png]

Donde queremos mostrar el estado de los servidores colocamos:

Código PHP:
<?php
include("Monitor.php");
echo 
"<style>
.csmonitorius{
background: #494949;
color: #ffffff;
text-shadow: 1px 1px 0px #000000;
-moz-border-radius:5px;
-webkit-border-radius:5px;
-opera-border-radius:5px;
-khtml-border-radius:5px;
border-radius:5px;
width: 98%;
margin-top: 3px;
margin-bottom: 3px;
}
</style>"
;
$servers = array(
array(
"200.43.193.212"27015),
array(
"193.104.68.64"27127),
array(
"188.241.115.180"27018),
array(
"200.43.192.111"27021)
);
$output "";
echo 
"<table cellpadding='0' class='csmonitorius' cellspacing='1' width='100%' height='25'>\n";
    foreach(
$servers as $server){
        
$srv = new Monitor($server[0], $server[1]);
        
$output .= $srv->display();
    }
    echo 
$output;
echo 
"</table>\n";
?>

y creamos un archivo llamado Monitor.php con lo siguiente. Debe estar en el mismo directorio que el archivo donde colocamos el codigo anterior salvo que modifiquemos el include para colocarlo en algún directorio especifico(lo mas prolijo).

Código PHP:
<?php
class Monitor{

    private 
$output;
    private 
$ip;
    private 
$port;
    private 
$servername;
    private 
$map;
    private 
$players;
    private 
$maxplayers;
    
    function 
__construct($ip$port$packet "\xFF\xFF\xFF\xFFTSource Engine Query\x00"){
        
$this->ip $ip;
        
$this->port $port;
       if(!
$live_server fsockopen("udp://".$this->ip.":".$this->port.""))
       {
        
$this->output "Off";
      }
       else
       {
        
fwrite($live_server$packet);
        
socket_set_timeout($live_server,1,0);
        
$junk fread($live_server,5);
        
$status socket_get_status($live_server);
        
$do 1;
        
$server_info"";
         
         while(
$do)
         {
           
$str_1 fread($live_server,1);
           
$server_info .= $str_1;
           
$status socket_get_status($live_server);
           if(
$status["unread_bytes"] == 0) {$do 0;}
         }
        
fclose($live_server);
         
        if (
strlen($server_info) > 0)
        {
          
$success 1;
         
$junk $this->getnextstring($server_info);
         
$this->servername $this->getnextstring($server_info);
         
$this->map $this->getnextstring($server_info);
         
$junk $this->getnextstring($server_info);
         
$junk $this->getnextstring($server_info);
         
$this->players $this->getnextbytevalue($server_info);
         
$this->maxplayers $this->getnextbytevalue($server_info);
         }
         
         if (
$this->players != '') {
          
$this->players $this->players;
         } else {
          
$this->players "0";
         }
         
         if (
$this->maxplayers != '')
         {
          
$this->maxplayers $this->maxplayers;
         }
         else
         {
          
$this->maxplayers "0";
         }
         if (
$this->players $this->maxplayers)
         {
          
$this->output "<font color='#bcd83b'>Online</font>";
         }
             
        else
        {
          
$this->output "<font color='#d83b3b'>Lleno</font>";
        }
        if (
$this->output != "Pilnas" and $this->players != "0" or $this->maxplayers != "0")
        {
          
$this->output $this->output;
        }
        else
        {
          
$this->output "<font color='#d83b3b'>Caído</font>";
        }
        if (
$this->map != '')
         {
          
$this->map "".$this->map."";
         }
         else
         {
          
$this->map "-----";
         }
          if (
$this->servername != '') {
          
$this->servername $this->servername;
         } else {
          
$this->servername "<font color='#d83b3b'>Servidor caído</font>";
         }
         
  
      }
    }
    
    private function 
getnextstring(&$data){
        
$temp="";
        
$counter=0;
        while (
ord($data[$counter++])!=0$temp.=$data[$counter-1];
        
$data=substr($data,strlen($temp)+1);
        return 
$temp;
    }
    
    private function 
getnextbytevalue(&$data){
        
$temp=ord($data[0]);
        
$data=substr($data,1);
        return 
$temp;
    }
    
    public function 
display(){
        
$html "<tr><td align='center'>".$this->output."</td>
        <td align='center'>"
.$this->ip.":".$this->port."</td>
        <td align='center'>"
.$this->servername."</td>
        <td align='center'>"
.$this->map."</td>
        <td calign='center'>"
.$this->players."/".$this->maxplayers."</td></tr>";
        return 
$html;
    }

}
?>

Para editar, borrar y/o agregar servidores hay que editar..

Código PHP:
$servers = array(
array(
"200.43.193.212"27015),
array(
"193.104.68.64"27127),
array(
"188.241.115.180"27018),
array(
"200.43.192.111"27021)
); 

con el IP seguido del puerto.
#2
Esta bien padre esta información gracias por compartirla sabes donde puedo encontrar servidores para jugar online tengo la CS pero no se donde buscar los servidores tengo un año que no lo jugaba
WWW
#3
(11-11-2012, 09:07 PM)JUNIOR26 escribió: Esta bien padre esta información gracias por compartirla sabes donde puedo encontrar servidores para jugar online tengo la CS pero no se donde buscar los servidores tengo un año que no lo jugaba


Claro, en gametracker.com hay bastantes servidores y es fácil de buscar.

Entra a http://www.gametracker.com/search/cs/? y selecciona un país en "Located in" Guiño
#4
Exelente, yo tenia otro metodo de verificar servidores de juegos. pero usare el tuyo, me parece mejor.
+1
#5
Muchas gracias, yo uso mybb, te cuento como me fue
#6
huuuuy me hablastes en chino, no entendi XD
Nadie sabe lo que tiene, hasta que lo pierde!! [Imagen: 4OTFR.jpg]
#7
me podrian ayudar me aparece esto

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/mx3vilz1/public_html/testing/Monitor.php on line 4


Posibles temas similares...
Tema Autor Respuestas Vistas Último mensaje
  tu estado de animo marca la diferencia georgecuriel 2 275 25-11-2015, 05:51 PM
Último mensaje: efbsfcd
  corea del norte una secta convertida en estado? georgecuriel 0 266 18-11-2015, 12:16 AM
Último mensaje: georgecuriel
  Cercado de Lima: conductor en estado de ebriedad embistió y derribó un poste RezakeaoCrew 0 248 11-12-2014, 05:49 PM
Último mensaje: RezakeaoCrew
  El fantasmal estado actual de las oficinas de la desaparecida THQ al descubierto gaaraale 0 249 28-05-2014, 05:06 PM
Último mensaje: gaaraale
  Pack de Guias de crear servidores de wow duvan 1 371 03-01-2013, 12:52 PM
Último mensaje: josephsk8one
  Pack de Herramientas V1 Para servidores de wow duvan 0 358 02-01-2013, 05:33 AM
Último mensaje: duvan
  actitud cientifica como estado de vida bryan 0 517 05-11-2011, 01:18 AM
Último mensaje: bryan
  Bueno en este caso le toca a ps4 potencia en estado puro DJ Razor22 13 1,967 10-01-2011, 08:26 PM
Último mensaje: Arrakis



Usuarios navegando en este tema: 1 invitado(s)