TrexXx
Straßengauner
|
|
Registrierung: |
14.06.2008, 11:48 |
Beiträge: |
117
|
|
Also, ich bin wieder aus dem Urlaub zurück (mit meinen tollen fragen )
Ich bin wieder mal bei php angelangt, da ich eine art server-monitor fake machen möchte, ich habe danach gesucht, habe aber nichts gefunden, desshalb habe ich es selbst probiert, da ich aber ka habe wie das gehen soll, habe ich es aus meinem Interface geholt, und das sieht so aus(geht aber nicht):
Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
| <?php
$ip = "xxx.xxx.xxx.xxx"; $port = "xxxx";
if(SampStatsCore::IsServerActive($ip, $port)) {
echo 'SampStatsCore::GetServerStats(_HOST, $port)';
} else { echo '<img src="offline.jpg" alt="Bild">'; }
class SampStatsCore { function IsServerActive($ip, $port) { $fp = @fsockopen('udp://'.$ip, $port, $errno, $errstr, 0); @socket_set_timeout($fp, 1); $packet = 'SAMP'; $packet .= chr(strtok($ip, '.')); $packet .= chr(strtok('.')); $packet .= chr(strtok('.')); $packet .= chr(strtok('.')); $packet .= chr($port & 0xFF); $packet .= chr($port >> 8 & 0xFF); @fwrite($fp, $packet.'i'); if(@fread($fp, 11)) { fclose($fp); return true; } else { return false; } } function GetServerStats($ip, $port) { if(!SampStatsCore::IsServerActive($ip, $port)) { $return = "I can't connect to the server. Please check the configuration."; return $return; } $return .= '<table width="350" bgcolor="#000000" cellpadding="4" cellspacing="1" align="center" style="font-size: 11px;">';
$fp = @fsockopen('udp://'.$ip, $port, $errno, $errstr, 0); socket_set_timeout($fp, 1); if(!$fp) { $return .= '<tr><td bgcolor="#CCCCCC">Socket Error: '.$errno.' - '.$errstr.'</td></tr>\n'; } else { $packet = 'SAMP'; $packet .= chr(strtok($ip, '.')); $packet .= chr(strtok('.')); $packet .= chr(strtok('.')); $packet .= chr(strtok('.')); $packet .= chr($port & 0xFF); $packet .= chr($port >> 8 & 0xFF);
fwrite($fp, $packet.'i'); fread($fp, 11); $is_passworded = ord(fread($fp, 1)); $plr_count = ord(fread($fp, 2)); $max_plrs = ord(fread($fp, 2)); $strlen = ord(fread($fp, 4)); $hostname = fread($fp, $strlen); $strlen = ord(fread($fp, 4)); $gamemode = fread($fp, $strlen); $strlen = ord(fread($fp, 4)); $mapname = fread($fp, $strlen);
$return .= ' <tr><td bgcolor="#CCCCCC" colspan="2" align="center"><b>'.$hostname.'</b></td></tr>'."\r\n"; $return .= ' <tr><td bgcolor="#CCCCCC" width="100">Players: </td><td bgcolor="#CCCCCC" width="250">'.$plr_count.' / '.$max_plrs.'</td></tr>'."\r\n"; $return .= ' <tr><td bgcolor="#CCCCCC">GameMode: </td><td bgcolor="#CCCCCC">'.$gamemode.'</td></tr>'."\r\n"; $return .= ' <tr><td bgcolor="#CCCCCC">MapName: </td><td bgcolor="#CCCCCC">'.$mapname.'</td></tr>'."\r\n"; if($is_passworded) $return .= '<tr><td bgcolor="#CCCCCC">Passworded: </td><td bgcolor="#CCCCCC">Yes</td></tr>'."\r\n"; else $return .= ' <tr><td bgcolor="#CCCCCC">Passworded: </td><td bgcolor="#CCCCCC">No</td></tr>'."\r\n";
fwrite($fp, $packet.'c'); fread($fp, 11); $plr_count = ord(fread($fp, 2)); if($plr_count > 0) { $return .= ' </table><br>'."\r\n"; $return .= ' <table width="350" bgcolor="#000000" cellpadding="4" cellspacing="1" align="center">'."\r\n"; $return .= ' <tr><td bgcolor="#CCCCCC" align="center" width="250"><b>Player</b></td><td bgcolor="#CCCCCC" align="center" width="100"><b>Score</b></td></tr>'."\r\n"; for($i=0; $i<$plr_count; $i++) { $strlen = ord(fread($fp, 1)); $plrname = fread($fp, $strlen); $score = SampStatsCore::GetLong(fread($fp, 4)); $return .= ' <tr><td bgcolor="#CCCCCC">'.$plrname.'</td><td bgcolor="#CCCCCC">'.$score.'</td></tr>'."\r\n"; } } fclose($fp); } $return .= "</table><br />"; return $return; } } ?> |
PROBLEM: Es wirt mir immer angezeigt, dass der Server Off seie, hat jemand eine Idee, oder vllt. eins das funktioniert?
Gruß Trex, 4 all Gamers.
|
|