PHP-Fusion Mods
Navigacija
Apsauga
Apsauga Neleista registracija: 39713
Šiandien: 33
Prisijungę nariai
» Svečių: 41
» Narių: 0

» Viso narių: 10,235
» Naujausias: ruslanas tuk

Prisijungimų istorija:
Zbigniew@senokai
tabuxnepamenu
sanpernepamenu
CepelinasXnepamenu
VV91DDnepamenu
Minusnepamenu
priezilviciunepamenu
EdvinasG1337nepamenu
rolandas94nepamenu
Edis2nepamenu
klubogerbejasnepamenu
Miskinisnepamenu
Pask. modai
Prisijungti
Vardas

Slaptažodis



Dar ne narys?
Registruotis.

Pamiršai slaptažodį?
Prašyk naujo!.

Naujausi prašymai
[L] testas
Narių apklausa
Ar dar kuriate tinklalapius?

Ne
Ne
0% [0 Balsai]

Taip
Taip
88% [7 Balsai]

Naudojuosi socialiniais tinklais
Naudojuosi socialiniais tinklais
13% [1 Balsas]

Balsai: 8
Kad galėtum balsuoti, turi prisijungti.
Pradėta: 2022-05-29 19:54
Shoutbox
You must login to post a message.

2026-05-11 16:51
Sveiki. Norėjau pasveikinti jus su atkaklumu arba ištverme. Tai viena iš dviejų paskutinių svetainių, paremtų v7. Ar negaila švaistyti ilgametės patirties ir pereiti prie v9?

2026-03-21 19:07

2025-07-13 17:07
svx, smagu kad dar atsiranda naujų narių Šypsosi2

2024-03-07 22:13
Oj Tabux… apkabinčiau už tą moderatorių 😁

2024-02-22 17:40
Šypsosi2 jo buvo laikai.. Senukai jau mes. Bega laikas greiciau nei noretusi. Smagu matyti kad uzsuka seni nariai, ne as vienas Šypsosi

Shoutbox Archive
Peržiūrėti temą
 Spausdinti temą
padekit kur jy det?
Giedrius
#1 Spausdinti pranešimą
parašyta 2008-09-25 21:53
Naujokas



Reputacija: 0

Pranešimai: 22
Įstojo: 2008-09-24

Download source  Code
 
License details
---------------
 
AUTHOR(S):      David Weston (dweston@hotmail.co.uk)
 
LICENCE:        This program is free software; you can redistribute it and/or
                modify it under the terms of the GNU General Public License
                as published by the Free Software Foundation; either version 2
                of the License, or (at your option) any later version.
 
                This program is distributed in the hope that it will be useful,
                but WITHOUT ANY WARRANTY; without even the implied warranty of
                MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                GNU General Public License for more details.
 
                You should have received a copy of the GNU General Public License
                along with this program; if not, write to the Free Software
                Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
                MA 02110-1301, USA.
           
OTHER INFO:     Enjoy using my RCON/PHP script, this will help you a lot! :3
   
    []
    ||_______
    /_________\
    | F  M  N |
    -----------
   
*/
session_start();
 
/* Configuration */
define(\"ONEHOSTONLY\", true);                   // Set this to true if you would use a username instead of server IP
 
define(\"DEFAULT_HOST\", \"localhost\");           // If 'ONEHOSTONLY' is true, the hostname/IP.
define(\"DEFAULT_PORT\", \"7777\");                // If 'ONEHOSTONLY' is true, the server's port.
define(\"DEFAULT_PASS\", \"changeme\");            // If 'ONEHOSTONLY' is true, the RCON password.
define(\"USERNAME\", \"rcon\");                    // If 'ONEHOSTONLY' is true, the username to login.
define(\"PASSWORD\", md5(\"ohai\"));               // If 'ONEHOSTONLY' is true, the password to login. [MD5]
 
/**********************************************************************/
?>
 

SA:MP RCON Panel - created by Westie
 
/**********************************************************************/
 
$stats = new SampStatsCore;
 
if(!isset($_SESSION['tmp_data']))
{
    if(ONEHOSTONLY == false)
    {
        $_SESSION['tmp_data'] = array
        (
            \"logged_in\"    => false,
            \"serverip\"    => \"255.255.255.255\",
            \"servport\"    => \"1024\",
            \"servpass\"    => \"changeme\",
            \"history\"    => array(),
            \"connect\"    => mktime()
        );
    }
   
    elseif(ONEHOSTONLY == true)
    {
        $_SESSION['tmp_data'] = array
        (
            \"logged_in\"    => false,
            \"serverip\"    => DEFAULT_HOST,
            \"servport\"    => DEFAULT_PORT,
            \"servpass\"    => DEFAULT_PASS,
            \"history\"    => array(),
            \"connect\"    => mktime()
        );
    }
}
 
if(ONEHOSTONLY == false)
{
    if(isset($_POST['serverip']))
    {
        $_SESSION['tmp_data']['logged_in'] = true;
        $_SESSION['tmp_data']['serverip'] = $_POST['serverip'];
        $_SESSION['tmp_data']['servport'] = $_POST['servport'];
        $_SESSION['tmp_data']['servpass'] = $_POST['servpass'];
        $_SESSION['tmp_data']['history'][] = \"Logged on to \".$_SESSION['tmp_data']['serverip'].\":\"
                                            .$_SESSION['tmp_data']['servport'].\" at \".
                                            date(\"F j, Y, H:i\", $_SESSION['tmp_data']['connect']).\".\";
    }
}
 
elseif(ONEHOSTONLY == true)
{
    if($_POST['username'] == USERNAME && md5($_POST['password']) == PASSWORD)
    {
        $_SESSION['tmp_data']['history'][] = \"Logged on to \".$_SESSION['tmp_data']['serverip'].\":\"
                                            .$_SESSION['tmp_data']['servport'].\" at \".
                                            date(\"F j, Y, H:i\", $_SESSION['tmp_data']['connect']).\".\";
        $_SESSION['tmp_data']['logged_in'] = true;
        $_SESSION['tmp_data']['serverip'] = DEFAULT_HOST;
        $_SESSION['tmp_data']['servport'] = DEFAULT_PORT;
        $_SESSION['tmp_data']['servpass'] = DEFAULT_PASS;
    }
}
 
if($_SESSION['tmp_data']['logged_in'] == false) { DisplayLoginForm(); exit; }
GetMain();
 
/**********************************************************************/
 
$_SESSION['tmp_env']['allowprint'] = array
(
    \"cmdlist\",
    \"varlist\"
);
 
$_SESSION['tmp_env']['printkey'] = array
(
    \"loadfs\", \"unloadfs\", \"reloadfs\", \"kick\", \"ban\", \"unbanip\", \"banip\", \"echo\",
    \"gmx\", \"reloadbans\", \"reloadlogs\", \"gravity\", \"weather\", \"say\", \"changemode\",
    \"hostname\", \"password\", \"rcon_password\"
);
 
$_SESSION['tmp_env']['printmessage'] = array
(
    \"loadfs\"        => \"fs> %1 has been loaded.\",
    \"unloadfs\"        => \"fs> %1 has been unloaded.\",
    \"reloadfs\"        => \"fs> %1 has been reloaded.\",
 
    \"kick\"            => \"kick> %1 has been kicked from the server.\",
    \"ban\"            => \"ban> %1 has been banned from the server.\",
    \"banip\"            => \"ban> The IP '%1' has been banned from the server.\",
    \"banip\"            => \"ban> The IP '%1' has been unbanned from the server.\",
 
    \"changemode\"    => \"gm> The mode has been changed to '%1'.\",
    \"gmx\"            => \"gm> The current mode has been restarted.\",
 
    \"reloadbans\"    => \"serv> The bans file has been reloaded.\",
    \"reloadlogs\"    => \"serv> The logs file has been reloaded.\",
 
    \"gravity\"        => \"env> The server's gravity has been changed to %1.\",
    \"weather\"        => \"env> The server's weather has been changed to %1.\",
 
    \"say\"            => \"say> %1\",
    \"echo\"            => \"%1\",
   
    \"hostname\"        => \"serv> The server's name has been changed to '%1'.\",
    \"password\"        => \"serv> The server's password has been changed to '%1'\",
    \"rcon_password\"    => \"serv> The RCON password has been changed. Now, please \"
                       .\"log back in with the new RCON password.\"
);
 
/**********************************************************************/
 
function RawRCON($ip, $port, $password, $command, $return = true)
{
    $packet = 'SAMP';
    $packet .= chr(strtok($ip, '.'));
    $packet .= chr(strtok('.'));
    $packet .= chr(strtok('.'));
    $packet .= chr(strtok('.'));
    $packet .= chr($port & 0xFF);
    $packet .= chr($port >> 8 & 0xFF);
    $packet .= 'x';
    $packet .= chr(strlen($password) & 0xFF);
    $packet .= chr(strlen($password) >> 8 & 0xFF);
    $packet .= $password;
    $packet .= chr(strlen($command) & 0xFF);
    $packet .= chr(strlen($command) >> 8 & 0xFF);
    $packet .= $command;
 
    $sock = fsockopen('udp://'.$ip, $port, $errno, $errstr, 0);
    fwrite($sock, $packet);
    $returnstr = \"\";
    $cmd = explode(\" \", $command, 2);
 
    if($return && in_array($cmd[0], $_SESSION['tmp_env']['allowprint']))
    {
        while(!feof($sock))
        {
            $str = fread($sock,128);
            $str = substr($str,13,strlen($str)-13);
            if(!$str) break;
            $returnstr .= $str.\"\r\n\";
            $_SESSION['tmp_data']['history'][] = $str;
        }
    }
    elseif($return && in_array($cmd[0], $_SESSION['tmp_env']['printkey']))
    {
        $find = array(\"%0\", \"%1\");
        $repl = array($cmd[0], $cmd[1]);
        $str = str_replace($find, $repl, $_SESSION['tmp_env']['printmessage'][$cmd[0]]);
        $returnstr .= $str;
        $_SESSION['tmp_data']['history'][] = $returnstr;
    }
    else
    {
        $find = array(\"%0\", \"%1\");
        $repl = array($cmd[0], $cmd[1]);
        $returnstr = str_replace($find, $repl, \"misc> Command has been sent, may be invalid. (\".$cmd[0].\" \".$cmd[1].\")\");
        $_SESSION['tmp_data']['history'][] = $returnstr;
    }
   
    fclose($sock);
    $returnstr .= \"\r\n\";
    return $returnstr;
}
 
/**********************************************************************/
 
function DisplayLoginForm()
{
    echo '
';
    echo '
';
    echo '
';
    echo '

Server RCON Panel

    echo 'font-size: 12px;\">
';
   
    echo $_SESSION['error']; $_SESSION['error'] = \"\";
   
    echo '';
    echo '';
    if(ONEHOSTONLY == false)
    {
        echo '';
        echo '';
        echo '';
        echo '';
        echo '';
        echo '';
        echo '';
        echo '';
        echo '';
        echo '';
        echo '';
    }
    elseif(ONEHOSTONLY == true)
    {
        echo \"Pre-configured mode.\";
        echo '';
        echo '';
        echo '';
        echo '';
        echo '';
        echo '';
        echo '';
    }
    echo '';
    echo '';
    echo '';
    echo '';
    echo '';
    echo '';
    echo '';
    echo '
Server IP
Server Port
Server Password
Username
Password
  
';
    echo '
Created by Westie!
';
    echo '';
}
 
/**********************************************************************/
 
function GetMain()
{
    global $stats;
    echo '
';
    echo '
';
    echo '

Server RCON Panel

    echo 'font-size: 12px;\">';
   
    if($_GET['action'] == 'history')
    {
        echo \"History\";
        echo \"
\";
        foreach($_SESSION['tmp_data']['history'] as $history)
        {
            echo $history.'
';
        }
        echo \"
\";
    }
    elseif($_GET['action'] == 'details')
    {
        echo \"Details
\";
        echo \"Server IP:       \".$_SESSION['tmp_data']['serverip'].\"\r\n\";
        echo \"Server Port:     \".$_SESSION['tmp_data']['servport'].\"\r\n\";
        echo \"Connected time:  \".date(\"F j, Y, H:i\", $_SESSION['tmp_data']['connect']).\"\r\n\";
        echo \"\r\n\";
        echo \"Your IP address: \".$_SERVER['REMOTE_ADDR'].\"\r\n\";
        echo \"
\";
    }
    elseif($_GET['action'] == 'logout')
    {
        unset($_SESSION['tmp_data']);
        echo \"You have been logged out. Please click here to log back in again.\";
    }
    elseif($_GET['action'] == 'stats')
    {
        if(!$stats->IsServerActive($_SESSION['tmp_data']['serverip'], $_SESSION['tmp_data']['servport']))
        {
            echo \"Sorry, the server is not online - so you can't use this.\";
            echo \"
\";
            exit;
        }
        echo $stats->GetServerStats($_SESSION['tmp_data']['serverip'], $_SESSION['tmp_data']['servport']);
    }
    elseif($_GET['action'] == 'console')
    {
        if(!$stats->IsServerActive($_SESSION['tmp_data']['serverip'], $_SESSION['tmp_data']['servport']))
        {
            echo \"Sorry, the server is not online - so you can't use this.\";
            echo \"
\";
            exit;
        }
       
        if($_POST['shell_submit'])
        {
            $ip = $_SESSION['tmp_data']['serverip'];
            $port = $_SESSION['tmp_data']['servport'];
            $result = RawRCON($ip, $port, $_SESSION['tmp_data']['servpass'], $_POST['shell_textfield']);
            echo \"
\".$result.\"
\";
        }
        else echo \"
I am waiting for your command.
\";
       
        echo '
';
        echo '';
        echo '';
        echo '
';
    }
    else
    {
        echo \"Welcome to your RCON Panel!\";
        $result = $stats->IsServerActive($_SESSION['tmp_data']['serverip'], $_SESSION['tmp_data']['servport']);
        $what = $result ? \"active\" : \"down\";
        echo \"
Connection: \".$what.\"\";
    }
    echo 'Created by Westie!';
}
 
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 { fclose($fp); return false; }
    }
       
    function GetServerStats($ip, $port)
    {
        if($this->IsServerActive($ip, $port)) { $return = \"I can't connect to the server. Please check the configuration.\"; return $return; }
        $return .= '';
 
        $fp = @fsockopen('udp://'.$ip, $port, $errno, $errstr, 0);
        socket_set_timeout($fp, 1);
       
        if(!$fp)
        {
            $return .= '\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 .= '      '.\"\r\n\";
            $return .= '      '.\"\r\n\";
            $return .= '      '.\"\r\n\";
            $return .= '      '.\"\r\n\";
            if($is_passworded) $return .= ''.\"\r\n\";
            else $return .= '      '.\"\r\n\";
 
            fwrite($fp, $packet.'c');
            fread($fp, 11);
            $plr_count = ord(fread($fp, 2));
            if($plr_count > 0)
            {
                $return .= '   
Socket Error: '.$errno.' - '.$errstr.'
'.$hostname.'
Players: '.$plr_count.' / '.$max_plrs.'
GameMode: '.$gamemode.'
MapName: '.$mapname.'
Passworded: Yes
Passworded: No

'.\"\r\n\";
                $return .= '    '.\"\r\n\";
                $return .= '      '.\"\r\n\";
                for($i=0; $i<$plr_count; $i++)
                {
                    $strlen = ord(fread($fp, 1));
                    $plrname = fread($fp, $strlen);
                    $score = $this->GetLong(fread($fp, 4));
                   
                    $return .= '      '.\"\r\n\";
                }
            }
            fclose($fp);
        }
        $return .= \"
PlayerScore
'.$plrname.''.$score.'

\";
        return $return;
    }
   
    function GetLong($dat)
    {
        $num=0;
        if((ord(substr($dat,3,1)) & 128) > 0)
        {
            for($i = 0; $i < strlen($dat); $i++) $num -= ((255 - ord(substr($dat, $i, 1))) << 8 * $i);
            $num--;
        }
        else for($i = 0; $i < strlen($dat); $i++) $num += (ord(substr($dat, $i, 1)) << 8 * $i);
        return $num;
    }
}
?>



gal galite pasakyti kurjy det ir ka daryt kad veiktu?
 
PM
LoseControl
#2 Spausdinti pranešimą
parašyta 2008-09-25 23:02
Apšylantis



Reputacija: 0

Pranešimai: 73
Įstojo: 2008-08-04

i pridetinius puslapius
 
PM
Giedrius
#3 Spausdinti pranešimą
parašyta 2008-09-27 21:08
Naujokas



Reputacija: 0

Pranešimai: 22
Įstojo: 2008-09-24

okur rast?,ir gal gali padaryt kad veiktu?
 
PM
Apocal
#4 Spausdinti pranešimą
parašyta 2008-09-27 21:56
Vartotojo avataras

Apšylantis



Reputacija: 0

Pranešimai: 77
Įstojo: 2007-09-04

i subine susikisk
Padedu kiek moku, kiek galiu :]
www.zir.lt - Vjo jgains
 
PM
Peršokti į forumą: