Suche Server Status Script

Grüße,

Ich habe hier ein Server Status Script.

Leider bekomme ich es wie ich es mache nicht hübscher :confused:

Im Anhang ist ein Screen…

Gibt es irgendwo ein Hübscheres Status Script?.. Ich finde nix wirklich :confused:

[ATTACH]437._xfImport[/ATTACH]

Also um ehrlich zu sein, finde ich das garnicht schlecht. Das sagt alles aus was man wissen muss. Wenn du es gerne mit Grafiken hinterlegt haben möchtest, dann beschäftige dich doch einfach mal etwas mehr mit html bsw php.

Zu deiner Frage: “Nein, sorry kann dir da nicht weiterhelfen. Sowas schreibt man selbst!” /emoticons/default_wink.png

Habe ein wenig rumgespielt damit und was schickes daraus gemacht.

[ATTACH]438._xfImport[/ATTACH]

würdest du uns das auch geben ?

Das doch nur etwas angepasst^^

Hier habe ich etwas für dich, wenn du WBB nutzen tust, einfach als eine Neue PhP Portalbox einbauen…


<?php

$ip_server1 ='Eure Ip';

$port_server1 ='Eurer LoginServerport';

$port_server2 ='Eurer Worldserverport';

echo '<center><b><font color=white>Loginserver</font></b></center>';

$online = @fsockopen($ip_server1, $port_server1, $errno, $errstr, 1);

if($online >= 1) {

echo '<center><b><font color=white>Online<br><img src="http://img251.imageshack.us/img251/2728/uparrow2.gif"</font></b></center>';

}

else {

echo '<center><b><font color=white>Offline<br><img src="http://img820.imageshack.us/img820/5343/downarrow2.gif"</font></b></center>';

}

?>

<?php

@mysql_connect("Eure IP","Mysql-Benutzer","Mysql-Passwort") OR die(mysql_error());

@mysql_select_db("Logondatenbank") OR die(mysql_error());

$query = @mysql_query("SELECT * FROM account") OR die(mysql_error());

$accnum = @mysql_num_rows($query);

echo "<center><b><font color=white>Accounts: $accnum</font></b></center>";

?><br><br>


<?php

$ip_server1 ='Eure IP';

$port_server2 ='Eurer Worldserverport';

echo '<center><b><font color=white>Eurer Realmname</font></b></center>';

$online = @fsockopen($ip_server1, $port_server2, $errno, $errstr, 2);

if($online >= 2) {

echo '<center><b><font color=white>Online<br><img src="http://img251.imageshack.us/img251/2728/uparrow2.gif"</font></b></center><br />';

}

else {

echo '<center><b><font color=white>Offline<br><img src="http://img820.imageshack.us/img820/5343/downarrow2.gif"</font></b></center><br />';

}

?>


<?php

$host = "Eure IP";  //db host

$user = "mysql-Benutzer";	   // username

$pass = "mysql-Passwort";	   // password

$char_data = "Charakter-Datenbank";  // char db

$conn = mysql_connect($host, $user, $pass) or die(mysql_error());

mysql_select_db($char_data, $conn) or die(mysql_error());


// Alliance Total Member Select

$asql = "SELECT SUM(online) FROM characters WHERE race IN(1,3,4,7,11)";

$asqlquery = mysql_query($asql) or die(mysql_error());

$amemb = mysql_result($asqlquery,0,0);

// Horde Total Member Select

$hsql = "SELECT SUM(online) FROM characters WHERE race IN(2,5,6,8,10)";

$hsqlquery = mysql_query($hsql) or die(mysql_error());

$hmemb = mysql_result($hsqlquery,0,0);

echo "<b><center><font color=white><img src='http://img222.imageshack.us/img222/144/alliancebannernew.png'> ".$amemb.""; 

echo "<img src='http://img8.imageshack.us/img8/115/hordebannernew.png'> ".$hmemb."</font></center></b>";


// Total Member Select

$sql = "SELECT SUM(online) FROM characters";

$sqlquery = mysql_query($sql) or die(mysql_error());

$memb = mysql_result($sqlquery,0,0);


mysql_close($conn);

?><br>

<?php

@mysql_connect("Eure IP","Mysql-Benutzer","Mysql-Passwort") OR die(mysql_error());

@mysql_select_db("Charakter-Datenbank") OR die(mysql_error());

$query = @mysql_query("SELECT * FROM characters WHERE online = 1") OR die(mysql_error());

$plronline = @mysql_num_rows($query);

echo "<center><b><font color=#FFFFE1>Gesamt: $plronline</font></b></center>";

?>

<br>

<center><b><font color=white>set realmlist eure Realmlist</b></center>

<br>

<center><b>Patch: 3.3.5a Wotlk</b></center></font>

danke erstmal, aber irgendwie kommt bei mir nur ein grüner punkt, rest bleibt weiß, denke mal da stimmt was nicht bei der abfrage

@BoBMarleY

deins gefällt mir sehr gut was du abgeändert hast, würdest du es frei geben ?

Dann geh mal auf meiner Seite… Link Entfernd, da ich keine Warnings möchte.

Da siehst du das du deine Datenbankkonfiguration falsch eingestellt hast…


<?php

$ip_server1 ='127.0.0.1 / oder / wenn nicht auf dem Server liegrnd deine Host IP';

$port_server1 ='3724';

$port_server2 ='8085';

echo '<center><b><font color=white>Loginserver</font></b></center>';

Das ganze musst du im ganzen Script einstellen… Es sind immerhin mehrere Abfragen drin… Auf Wunsch kann ich dir das sogar noch mit Gilden einstellen, aber das ist dann nicht mehr Kostenlos !

Du solltest den Link entfernen /emoticons/default_wink.png

der cod ist meiner Meinung nach unsauber geschrieben man findet ihn so oder so ähnlich immer wieder.

[CODE]
$online = @fsockopen($ip_server1, $port_server2, $errno, $errstr, 2);
if($online >= 2) {
echo ‘Online
<img src=“http://img251.imageshack.us/img251/2728/uparrow2.gif

’;
}
else {
echo ‘Offline
<img src=“http://img820.imageshack.us/img820/5343/downarrow2.gif

’;
}

[/PHP][/CODE]

so wurde ich es schreiben

[PHP]

if(!$sock = @fsockopen($ip_server1, $port_server2, $errno, $errstr, 2)) {

$status = 0;
}
else {

$status = 1;
fclose($sock);
}

[/PHP]
in if Fall wird geprüft ob der Server Nicht erreichbar ist wen Ja wird die offline Meldung ausgegeben.

der else Fall wird ausgegeben wen der Server erreichbar ist mit der entsprechenden Meldung

und der offene Sockel wieder geschlossen.

auserdem würde ich es in eine function packen.

so habe den cod mal umgeschrieben der rest ist reines html + ein bar echo ausgaben

config.inc.php

[CODE]

<?php $configarray['realm_db']['hostname'] = '127.0.0.1'; $configarray['realm_db']['username'] = 'root'; $configarray['realm_db']['password'] = ''; $configarray['realm_db']['database'] = 'realmd'; $configarray['characters_db'][1]['hostname'] = '127.0.1'; $configarray['characters_db'][1]['username'] = 'root'; $configarray['characters_db'][1]['password'] = ''; $configarray['characters_db'][1]['database'] = 'characters'; ?>

[/php][/CODE]

status script

[php]

<?php require_once(dirname(__FILE__).'/config/config.inc.php'); function ago($timestamp){ $difference = time() - $timestamp; $secs = intval($difference % 60); $mins = intval($difference / 60 % 60); $hours = intval($difference / 3600 % 24); $days = intval($difference / 86400); if($days >0 ) { if($days == 1) { $timediff = " $days tag $hours stunden $mins min $secs sec"; } else { $timediff = " $days tage $hours stunden $mins min $secs sec"; } } elseif(($hours > 0) && $days < 1) { if($hours == 1) { $timediff = "$hours stunde $mins min $secs sec "; } else { $timediff = "$hours stunden $mins min $secs sec "; } } elseif(($mins > 0) && ($hours < 1) &&$days < 1) { $timediff = "$mins mine $secs sec"; } elseif(($secs < 59) && ($mins < 1) && ($hours < 1) && $days < 1) { $timediff = "$secs sec"; } return $timediff; } function serverstatus($ip, $port ) { if (!$sock = @fsockopen($ip, $port, $error, $errstr, 5)) { $status = "0"; } else { $status = 1; fclose($sock); } return $status; } function uptime($config = array(), $serverid = 1) { $conn = mysql_connect($config['hostname'], $config['username'], $config['password']) or die(mysql_error()); mysql_select_db($config['database'], $conn) or die(mysql_error()); $sql='SELECT starttime, maxplayers FROM uptime WHERE realmid = '.$serverid.' ORDER BY starttime DESC'; $query = mysql_query($sql) or die(mysql_error()); $result = mysql_fetch_assoc($query); mysql_close($conn); return $result; } function isGM($config = array(), $serverid = 1) { $conn = mysql_connect($config['hostname'], $config['username'], $config['password']) or die(mysql_error()); mysql_select_db($config['database'], $conn) or die(mysql_error()); $sql='SELECT id FROM account_access WHERE RealmID IN ('.$serverid.', -1)'; $query = mysql_query($sql) or die(mysql_error()); $string =''; while ($result = mysql_fetch_assoc($query)) { $string .= $result['id']; $string .=','; } mysql_close($conn); return substr($string, 0,-1); } function characters($config = array(), $string = '') { $conn = mysql_connect($config['hostname'], $config['username'], $config['password']) or die(mysql_error()); mysql_select_db($config['database'], $conn) or die(mysql_error()); $sql = array(); $sql[0]='SELECT COUNT(guid) AS charactersMax FROM characters'; $sql[1]='SELECT COUNT(guid) AS allianceMax FROM characters WHERE race IN(1,3,4,7,11)'; $sql[2]='SELECT COUNT(guid) AS hordeMax FROM characters WHERE race IN(2,5,6,8,10)'; $sql[3]='SELECT COUNT(guid) AS charactersOnline FROM characters WHERE online = 1'; $sql[4]='SELECT COUNT(guid) AS allianceOnline FROM characters WHERE online = 1 AND race IN(1,3,4,7,11)'; $sql[5]='SELECT COUNT(guid) AS hordeOnline FROM characters WHERE online = 1 AND race IN(2,5,6,8,10)'; $sql[6]='SELECT COUNT(guid) AS gmOnline FROM characters WHERE online = 1 AND account IN ('.$string.')'; $array = array(); foreach ($sql as $value) { $query = mysql_query($value) or die(mysql_error()); $result = mysql_fetch_assoc($query); $key = key($result); $array[$key] = $result[$key]; } mysql_close($conn); return $array; } $serverid = 1; $ip = $configarray['characters_db'][$serverid]['hostname']; $port = 8085; if(serverstatus($ip, $port) == 1) { $uptime = uptime($configarray['realm_db'], $serverid); $string = isGM($configarray['realm_db'], $serverid); $characters = characters($configarray['characters_db'][$serverid], $string); $array['status'] = 'Online'; $array['img'] = 'online.jpg'; $array['uptime'] = ago($uptime['starttime']); $array['maxplayers'] = $uptime['maxplayers']; } else { $characters = array(); $characters['charactersMax'] = 0; $characters['allianceMax'] = 0; $characters['hordeMax'] = 0; $characters['charactersOnline'] = 0; $characters['allianceOnline'] = 0; $characters['hordeOnline'] = 0; $characters['gmOnline'] = 0; $array = array(); $array['status'] = 'Offline'; $array['img'] = 'offline.jpg'; $array['uptime'] = '--'; $array['maxplayers'] = 0; } print_r($characters); print_r($array); ?>

Würdest du mir einmal den Kompletten Code zukommen lassen ? Würd mich mal Interessieren…

@Robox

das nenne ich mal sauber geschrieben, das geht 1a, würdest du das ganze script sauber scripten ?

script angebast den html teil müst ihr dan noch selbst machen das solde nicht allzuschwer sein und ein bar echo ausgaben zu machen

So habe mein Script noch mal angebast da mir ein bar kleine Fehler underlaufen sind