Changeset 5


Ignore:
Timestamp:
Jun 4, 2008, 7:35:37 AM (16 years ago)
Author:
george
Message:

Upraveno: Skript pro kontrolu stavu serverů.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • Readme.txt

    r4 r5  
    11Zdrojové kódy webu jsou primárně uloženy v SVN repozitáři . Webový systém Trac je dostupný na adrese http://game.zdechov.net/trac/wowstatus/. Všichni vývojaři podílející se na vývoji tohoto webu nechť jej používají, aby nedocházelo k vzájemnému přepisu kódů a aby všichni věděli co dělají ti druzí za změny.
    22
     3Přihlašovací údaje k databázi musí být umístěny pouze v jednom souboru, který navíc nesmí být umožen v repozitáři. Proto zde existuje soubor config.sample.php, který je nutné si na lokálním webu překopírovat jako config.php a doplnit přihlašovací údaje ke svému MySQL serveru.
     4
    35Pro registraci kontaktujte Chronose na ICQ 277158770.
  • scripts/online.php

    r1 r5  
    66mysql_select_db($db_config['name']);
    77
    8 $data = mysql_query("SELECT `id`,`ip`,`port` FROM `servers`");
     8function CheckPortStatus($Ip, $Port)
     9{
     10  $Timeout = 1;
     11  if($Socket = @fsockopen($Ip, $Port, $ErrorNumber, $ErrorString, $Timeout))
     12  {
     13    fclose($Socket);
     14    return(true);
     15  } else
     16  {
     17    return(false);
     18  }
     19}
    920
     21echo("Kontroluji stav serveru...<br>\n");
     22$OnlineCount = 0;
     23$OfflineCount = 0;
     24$Servers = mysql_query("SELECT `id`,`ip`,`port`,`name` FROM `servers`");
     25while($Server = mysql_fetch_array($Servers))
     26{
     27  echo($Server['name'].' - ');
     28  if(CheckPortStatus($Server['ip'], $Server['port']))
     29  {
     30    mysql_query("UPDATE `servers` SET `online_checks` = `online_checks` + 1, `online` = `online` + 1 WHERE `id`=".$Server['id']);
     31    echo('Online');
     32    $OnlineCount++;
     33  } else
     34  {
     35    mysql_query("UPDATE `servers` SET `online_checks` = `online_checks` + 1 WHERE `id` =".$Server['id']);
     36    echo('Offline');
     37    $OfflineCount++;
     38  }
     39  echo("<br>\n");
     40}
     41mysql_free_result($Servers);
    1042
    11 while ($row = mysql_fetch_array($data))
    12   {
    13  
    14     $check = @fsockopen($row[ip],$row[port],$ern,$erstr,1);
    15 
    16       if($check)
    17         {
    18             $onservers[] = $row[id];
    19              
    20         }
    21        else
    22         {
    23          
    24            $offservers[] = $row[id];
    25            
    26         }
    27    
    28  
    29   }
    30 
    31 mysql_free_result($data);
    32 
    33 $onstr = implode(',',$onservers);
    34 $offstr = implode(',',$offservers);
    35 
    36 
    37 mysql_query("UPDATE `servers` SET `online_checks` = `online_checks` + 1, `online` = `online` + 1 WHERE `id` IN ('$onstr')");   
    38 mysql_query("UPDATE `servers` SET `online_checks` = `online_checks` + 1 WHERE `id` in ('$offstr')");     
    39 
    40 
    41 echo "Online :", count($onservers) ," Offline :", count($offservers);
    42 
     43echo('Total: '.($OnlineCount + $OfflineCount).', Online: '.$OnlineCount.', Offline: '.$OfflineCount."<br>\n");
    4344
    4445?>
Note: See TracChangeset for help on using the changeset viewer.