MattMski

php statpage

Aug 25th, 2013
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.82 KB | None | 0 0
  1. <html>
  2.     <head>
  3.         <title>Server Statistics</title>
  4.         <style type="text/css">
  5.             body {
  6.     background: #22202F;
  7.     color: #07BFFF;
  8.     text-color: #472929;
  9.     background-color: #006666;
  10.             }
  11.  
  12.             a:link {
  13.                 color: #07BFFF;
  14.             }
  15.            
  16.             td.border {
  17.                 width: 50%;
  18.                 background: #4F487C;
  19.                 color: #07BFFF;
  20.                 border: 1px solid #100C16;
  21.             }
  22.            
  23.             table.theader {
  24.                 background:#7B97EB;
  25.                 width: 40%;
  26.                 margin:0 auto;
  27.                 padding: 3px 1px 3px 1px;
  28.                 text-align:center;
  29.             }
  30.            
  31.             table.playerHeader {
  32.                 background:#100C16;
  33.                 border: 2px solid #7B97EB;
  34.                 width: 40%;
  35.                 margin:0 auto;
  36.                 padding: 3px 1px 3px 1px;
  37.                 text-align:center;
  38.             }
  39.         </style>
  40.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  41.     </head>
  42.     <body>
  43.         <br />
  44.         <div style="text-align:center;">
  45.             <b><font color="#ffffff">SA:MP Server Info</font></b>
  46.            
  47.             <br /><br />
  48.  
  49.             <table class="theader">
  50.            
  51.                 <?php
  52.                     //Defaults
  53.                     if (!isset($_GET['ip'])) {
  54.                         $ip = '91.121.6.5';
  55.                     }
  56.                     else {
  57.                         $ip = $_GET['ip'];
  58.                     }
  59.                    
  60.                     if (!isset($_GET['port'])) {
  61.                         $port = 7777;
  62.                     }
  63.                     else {
  64.                         $port = $_GET['port'];
  65.                     }
  66.  
  67.                     $fp = fsockopen('udp://' . $ip, $port, $errno, $errstr);
  68.                    
  69.                     if (!$fp) {
  70.                         echo '<tr><td class="border">Socket Error: $errno - $errstr</td></tr>\n';
  71.                     }
  72.                     else {
  73.                         $packet = 'SAMP';
  74.                         $packet .= chr(strtok($ip, '.'));
  75.                         $packet .= chr(strtok('.'));
  76.                         $packet .= chr(strtok('.'));
  77.                         $packet .= chr(strtok('.'));
  78.                         $packet .= chr($port & 0xFF);
  79.                         $packet .= chr($port >> 8 & 0xFF);
  80.  
  81.                         fwrite($fp, $packet . 'i');
  82.                         fread($fp, 11);
  83.                         $is_passworded = ord(fread($fp, 1));
  84.                         $plr_count = ord(fread($fp, 2));
  85.                         $max_plrs = ord(fread($fp, 2));
  86.                         $strlen = ord(fread($fp, 4));
  87.                         $hostname = fread($fp, $strlen);
  88.                         $strlen = ord(fread($fp, 4));
  89.                         $gamemode = fread($fp, $strlen);
  90.                         $strlen = ord(fread($fp, 4));
  91.                         $mapname = fread($fp, $strlen);
  92.                        
  93.                         if (strlen($hostname) < 1) {
  94.                             echo 'Server IP ' . $ip . ' is not online.';
  95.                         }
  96.                         else {
  97.                             echo '<table class="theader"><tr><td style="width:100%;"><b>' . $hostname . '<br />' . $ip . ":" . $port . '</b></td></tr></table><br />'."\n";
  98.                             echo '<table class="theader"><tr><td class="border">Players: </td><td class="border">' . $plr_count . ' / ' . $max_plrs . '</td></tr>' . "\n";
  99.                             echo '<tr><td class="border">GameMode: </td><td class="border">' . $gamemode . '</td></tr>'."\n";
  100.                             echo '<tr><td class="border">MapName: </td><td class="border">' . $mapname . '</td></tr>'."\n";
  101.                            
  102.                             if ($is_passworded) {
  103.                                 echo '<tr><td class="border">Using Password: </td><td class="border">Yes</td></tr>' . "\n";
  104.                             }
  105.                             else {
  106.                                 echo '<tr><td class="border">Using Password: </td><td class="border">No</td></tr></table>' . "\n";
  107.                             }
  108.                            
  109.                             echo "<br /><br />";
  110.  
  111.                             fwrite($fp, $packet.'c');
  112.                             fread($fp, 11);
  113.                             $plr_count = ord(fread($fp, 2));
  114.                            
  115.                             if ($plr_count > 0) {
  116.                                 echo '<table class="playerHeader"><tr><td style="width: 50%;"><b>Player</b></td><td style="width: 50%;"><b>Score</b></td></tr></table>' . "\n";
  117.                                
  118.                                 echo '<table class="theader">' . "\n";
  119.                                 for ($i = 0; $i < $plr_count; $i++) {
  120.                                     $strlen = ord(fread($fp, 1));
  121.                                     $plrname = fread($fp, $strlen);
  122.                                     $score = ord(fread($fp, 4));
  123.                                     echo '<tr><td class="border">' . $plrname . '</td><td class="border">' . $score . '</td></tr>' . "\n";
  124.                                 }
  125.                             }
  126.                             else {
  127.                                 echo '<tr><td class="border"><b>No players currently online!</b></td></tr>' . "\n";
  128.                             }
  129.                             fclose($fp);
  130.                         }
  131.                     }
  132.                 ?>
  133.             </table>
  134.            
  135.         </div>
  136.     <br />
  137.     </body>
  138. </html>
Advertisement
Add Comment
Please, Sign In to add comment