Skrypt na pokazywanie statusu serwera CS


(Ford Fokus) #1

Witam, mam problem, czy mógłby mi ktoś napisać takowy skrypt w php? :slight_smile: Na php nie znam się w ogóle,chodzi o skrypt który w momencie gdy port 27015 jest zajęty (serv on) by wyświetlał Online, a gdy wolny (serv off) Offline. Wiem, że nie jest z tym dużo roboty, ale nie znalazłem podobnego skryptu na żadnej www, więc nie mam na czym się nawet wzorować, a od zera sam nie napiszę :slight_smile: Dzięki.

Ewentualnie link do jakiegoś hack'a do IPB (2.1.7) który wyświetłał by to. Mają takie coś np. na http://www.gamecenter.pl


(system) #2

Pierwszy wynik z google:

:arrow: http://forum.php.pl/lofiversion/index.php/t23051.html

:slight_smile:


(Ford Fokus) #3

Dzięki ale jak to teraz zrobić, żeby działało? Bo..


(Skr3czu) #4

ale przeczytaj ten cały temat to bedziesz wiedział o co chodzi:

http://forum.php.pl/index.php?showtopic=23051


(system) #5

Przykładowy kod:

<?php


// tu zaczyna się określanie funkcji itepe

    function RetriveInfo ( $strServerIP = '127.0.0.1', $intServerPort = 27015 )

    {

        $connection = fsockopen( "udp://" . $strServerIP, $intServerPort );

        fwrite( $connection, sprintf( '%c%c%c%c%s%c', 0xFF, 0xFF, 0xFF, 0xFF, "infostring", 0x00 ) );

        fread( $connection, 24 );

        $status = socket_get_status( $connection );

        if ( $status["unread_bytes"] != 0 )

        {

            $return = "";

            while ( $status["unread_bytes"] != 0 )

            {

                $return .= fread( $connection, 1 );

                $status = socket_get_status( $connection );

            }


            $return = explode( '\\', $return );


            $arr = array();

            $arr['ip'] = $intServerIP;

            $arr['port'] = $intServerPort;

            $arr['hostname'] = $return[19];

            $arr['game'] = $return[17];

            $arr['players'] = $return[5];

            $arr['maxplayers'] = $return[11];

            $arr['system'] = ( $return[25] == "w" ) ? "Windows" : "Linux";

            $arr['game_dir'] = $return[15];

            $arr['map'] = $return[21];

            $arr['password'] = ( $return[25] == "0" ) ? false : true;

            $arr['secure'] = $return[29];

            return $arr;

        }

        else

        {

            // blad?

            return $arr;

        }

    }


//a poniżej kod wyświetlający


print_r( RetriveInfo( 'xxx', yyy ) );



?>

Na samym końcu kodu zmień xxx na IP serwera, a yyy - na port. :slight_smile:


(Ford Fokus) #6

Warning: fsockopen() has been disabled for security reasons in /var/www/virtual/ford.byethost6.com/htdocs/stan.php on line 12

:frowning:


(system) #7

Wygląda na to, że Twój serwer nie obsługuje tej komendy, tzn. została zablokowana przez administratora.


(Skr3czu) #8

Musisz dać na inny serwer


(Ford Fokus) #9

Nie dział no trudno... Ale może zna ktoś link do tego hacka pod IPB?