MattMski icon

php statpage

MattMski | PRO | 08/25/13 07:20:09 PM UTC | 0 ⭐ | 182 👁️ | Never ⏰ | []
PHP |

3.82 KB

|

None

|

0 👍

/

0 👎

<html>
    <head>
        <title>Server Statistics</title>
        <style type="text/css">
            body {
    background: #22202F;
    color: #07BFFF;
    text-color: #472929;
    background-color: #006666;
            }
 
            a:link {
                color: #07BFFF;
            }
            
            td.border {
                width: 50%;
                background: #4F487C;
                color: #07BFFF;
                border: 1px solid #100C16;
            }
            
            table.theader {
                background:#7B97EB;
                width: 40%;
                margin:0 auto;
                padding: 3px 1px 3px 1px;
                text-align:center;
            }
            
            table.playerHeader {
                background:#100C16;
                border: 2px solid #7B97EB;
                width: 40%;
                margin:0 auto;
                padding: 3px 1px 3px 1px;
                text-align:center;
            }
        </style>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    </head>
    <body>
        <br />
        <div style="text-align:center;">
            <b><font color="#ffffff">SA:MP Server Info</font></b>
            
            <br /><br />
 
            <table class="theader">
            
                <?php
                    //Defaults
                    if (!isset($_GET['ip'])) {
                        $ip = '91.121.6.5';
                    }
                    else {
                        $ip = $_GET['ip'];
                    }
                    
                    if (!isset($_GET['port'])) {
                        $port = 7777;
                    }
                    else {
                        $port = $_GET['port'];
                    }
 
                    $fp = fsockopen('udp://' . $ip, $port, $errno, $errstr);
                    
                    if (!$fp) {
                        echo '<tr><td class="border">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);
                        
                        if (strlen($hostname) < 1) {
                            echo 'Server IP ' . $ip . ' is not online.';
                        }
                        else {
                            echo '<table class="theader"><tr><td style="width:100%;"><b>' . $hostname . '<br />' . $ip . ":" . $port . '</b></td></tr></table><br />'."\n";
                            echo '<table class="theader"><tr><td class="border">Players: </td><td class="border">' . $plr_count . ' / ' . $max_plrs . '</td></tr>' . "\n";
                            echo '<tr><td class="border">GameMode: </td><td class="border">' . $gamemode . '</td></tr>'."\n";
                            echo '<tr><td class="border">MapName: </td><td class="border">' . $mapname . '</td></tr>'."\n";
                            
                            if ($is_passworded) { 
                                echo '<tr><td class="border">Using Password: </td><td class="border">Yes</td></tr>' . "\n";
                            }
                            else {
                                echo '<tr><td class="border">Using Password: </td><td class="border">No</td></tr></table>' . "\n";
                            }
                            
                            echo "<br /><br />";
 
                            fwrite($fp, $packet.'c');
                            fread($fp, 11);
                            $plr_count = ord(fread($fp, 2));
                            
                            if ($plr_count > 0) {
                                echo '<table class="playerHeader"><tr><td style="width: 50%;"><b>Player</b></td><td style="width: 50%;"><b>Score</b></td></tr></table>' . "\n";
                                
                                echo '<table class="theader">' . "\n";
                                for ($i = 0; $i < $plr_count; $i++) {
                                    $strlen = ord(fread($fp, 1));
                                    $plrname = fread($fp, $strlen);
                                    $score = ord(fread($fp, 4));
                                    echo '<tr><td class="border">' . $plrname . '</td><td class="border">' . $score . '</td></tr>' . "\n";
                                }
                            }
                            else {
                                echo '<tr><td class="border"><b>No players currently online!</b></td></tr>' . "\n";
                            }
                            fclose($fp);
                        }
                    }
                ?>
            </table>
            
        </div>
    <br />
    </body>
</html>

Comments