hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.06.16. 08:41



Jelenlévő felhasználók

Jelenleg 397 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 396 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: Google [Bot] az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 7 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: php lekérdezés
HozzászólásElküldve: 2013.10.18. 19:46 
Offline
Jómunkásember

Csatlakozott: 2012.01.29. 12:48
Hozzászólások: 408
Megköszönt másnak: 15 alkalommal
Megköszönték neki: 126 alkalommal
Helló!

Nos egy olyan kérdésem/kérésem lenne, hogy valaki tudna-e írni/linkelni egy olyan php lekérdezést cs 1.6-hoz, ami a szerveren tartózkodó játékosokat ( 10 / 32 ) a pályát és a szerver állapotát (online/offline) csekkolja.
Több szerver állapotát szeretném lekérdezni!

Előre is köszönöm a választ!


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: php lekérdezés
HozzászólásElküldve: 2013.10.18. 20:48 
Offline
Őskövület
Avatar

Csatlakozott: 2012.02.27. 09:42
Hozzászólások: 2588
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 418 alkalommal
https://forums.alliedmods.net/showthread.php?t=225066

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: php lekérdezés
HozzászólásElküldve: 2013.10.18. 21:07 
Offline
Jómunkásember

Csatlakozott: 2012.01.29. 12:48
Hozzászólások: 408
Megköszönt másnak: 15 alkalommal
Megköszönték neki: 126 alkalommal
Ez mind szép és jó, köszi hogy vetted a fáradtságot és rákerestél, de nem pluginnal és mysql -el szeretném megoldani hogy lekérdezze a szerver státuszt.

U.i.: "fsock" függvény is jöhet mert aktiválva van.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: php lekérdezés
HozzászólásElküldve: 2013.10.19. 08:12 
Offline
Tiszteletbeli

Csatlakozott: 2010.02.04. 19:12
Hozzászólások: 3528
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 180 alkalommal
Kód:
<?php /* v teto casti nastavujeme hodnoty pro vas server */
 $servername ="nev"; // Jmeno serveru //
 $serverip ="ip"; // IP serveru bez portu a dvojtecky //
 $serverport ="port"; // Port //
 $serverpasswort =""; // Server heslo - public pouze "" //
 $freieslots ="maxslot"; // Pocet slotu //
 $reservierteslots ="adminnakfenttartottslot"; // Pocet rezervovanych slotu //
 $year =date("Y"); // //
 $datum =date("j.M.Y"); // //
 $time =date("H:i:s"); // //
Class CounterStrike {
 var $m_servervars = ""; // Info about the server current map, players etc
 //
 // Get exact time, used for timeout counting
 //
 function timenow() {
 return doubleval(ereg_replace('^0\.([0-9]*) ([0-9]*)$','\\2.\\1',microtime()));
 }
 //
 // Read raw data from server
 //
 function getServerData($command,$serveraddress,$portnumber,$waittime) {
 $serverdata ="";
 $serverdatalen=0;
 if ($waittime< 500) $waittime= 500;
 if ($waittime>2000) $waittime=2000;
 $waittime=doubleval($waittime/1000.0);
 if (!$cssocket=fsockopen("udp://".$serveraddress,$portnumber,$errnr)) {
 $this->errmsg="No connection";
 return "";
 }
 socket_set_blocking($cssocket,true);
 socket_set_timeout($cssocket,0,500000);
 fwrite($cssocket,$command,strlen($command));
 //
 $starttime=$this->timenow();
 do {
 $serverdata.=fgetc($cssocket);
 $serverdatalen++;
 $socketstatus=socket_get_status($cssocket);
 if ($this->timenow()>($starttime+$waittime)) {
 $this->errmsg="Connection timed out";
 fclose($cssocket);
 return "";
 }
 } while ($socketstatus["unread_bytes"] );
 fclose($cssocket);
 return $serverdata;
 }
 function getnextstring(&$data) {
 $temp="";
 $counter=0;
 while (ord($data[$counter++])!=0) $temp.=$data[$counter-1];
 $data=substr($data,strlen($temp)+1);
 return $temp;
 }
 function getnextbytevalue(&$data) {
 $temp=ord($data[0]);
 $data=substr($data,1);
 return $temp;
 }
 // **********************************************************************
 // getServerinfo
 // Return true if successful
 // **********************************************************************
 function getServerInfo($serveraddress,$portnumber,$waittime) {
 $cmd="\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00";
 $serverdata=$this->getServerData($cmd,$serveraddress,$portnumber,$waittime) ;
 // Check length of returned data, if < 5 something went wrong
 if (strlen($serverdata)<5) return false;
 // Strip OOB data
 echo $serverdata;
 $serverdata=substr($serverdata,5);
 $this->m_servervars["serveraddress"] =$this->getnextstring($serverdata);
 $this->m_servervars["servername"] =$this->getnextstring($serverdata);
 $this->m_servervars["mapname"] =$this->getnextstring($serverdata);
 $this->m_servervars["game"] =$this->getnextstring($serverdata);
 $this->m_servervars["gamename"] =$this->getnextstring($serverdata);
 $this->m_servervars["currentplayers"] =$this->getnextbytevalue($serverdata);
 $this->m_servervars["maxplayers"] =$this->getnextbytevalue($serverdata);
 return true;
 }
 // **********************************************************************
 // Get Playerinfo
 // Return true if successful
 // **********************************************************************
}
 $serveradr ="$serverip";
 $serverport="$serverport";
 $csinfo=new CounterStrike;
 $status=$csinfo->getServerInfo($serveradr,$serverport,1000);
 ?>
<!-- konec hlavniho skriptu -->
<!-- defionovani vzhledu -->
<div style="width: 120px; background-color: black; border: 0px solid red; color: white; font-family: arial, sans-serif; fontsize: 9px">
 <div style="background-image: url('maps/<?=$csinfo->m_servervars["mapname"]?>.jpg'); background-repeat: norepeat; background-position: center center; padding: 3px 0px 0px 0px; _padding: 0px">
 <img src="map.gif" width="116" height="87" alt="Aktuální mapa">
 <!--<img src="maps/<?=$csinfo->m_servervars["mapname"]?>.jpg" width="116" height="87" alt="Aktuální mapa">-->
 </div>
 <div style="padding: 2px">
 <?php echo"$servername"; ?><br>
 IP: <?php echo"$serverip:$serverport"; ?><br>
 Mapa: <?=$csinfo->m_servervars["mapname"]?><br>
 Hráèù online:
 <?=$csinfo->m_servervars["currentplayers"] ?>
 </font>/
 <?php
 $serverslots=$freieslots-$reservierteslots;
 $serverslots=round($serverslots,2);
 echo"$serverslots"; ?><br>
 </div>
</div>

_________________
http://www.ebateam.eu/


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: php lekérdezés
HozzászólásElküldve: 2013.10.19. 09:04 
Offline
Developer
Avatar

Csatlakozott: 2011.06.01. 21:11
Hozzászólások: 7965
Megköszönt másnak: 295 alkalommal
Megköszönték neki: 537 alkalommal
https://github.com/xPaw/PHP-Source-Query-Class

ebbe van minden ami kell. GoldSrc és Sourc támogatás is.

_________________
http://www.easyrankup.eu


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: php lekérdezés
HozzászólásElküldve: 2013.10.19. 12:25 
Offline
Jómunkásember

Csatlakozott: 2012.01.29. 12:48
Hozzászólások: 408
Megköszönt másnak: 15 alkalommal
Megköszönték neki: 126 alkalommal
Köszönöm mindkettőt, ilyeneket kerestem.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: php lekérdezés
HozzászólásElküldve: 2013.10.27. 19:44 
Offline
Jómunkásember

Csatlakozott: 2012.01.29. 12:48
Hozzászólások: 408
Megköszönt másnak: 15 alkalommal
Megköszönték neki: 126 alkalommal
Nem akartam új témát nyitni, mert idevág a következő kérdésem is. (Tehát elnézést a dupla post-ért!)

Mivel nagyon minimálisan értek a php-hez, el is akadtam.
Az Iron által linkelt szerver infós scriptet használom, egy szervert le is tudok vele kérdezni, viszont többet már nem, ehhez kérnék egy kis segítséget.

Kód:
<link rel="stylesheet" type="text/css" href="css/style.css" />
<?php /* v teto casti nastavujeme hodnoty pro vas server */
   $servername      ="";
        $serverip             ="";         // IP serveru bez portu a dvojtecky //
        $serverport         ="";                     // Port //
Class CounterStrike {
        var $m_servervars = "";                // Info about the server current map, players etc
        //
        // Get exact time, used for timeout counting
        //
        function timenow() {
                return doubleval(ereg_replace('^0\.([0-9]*) ([0-9]*)$','\\2.\\1',microtime()));
        }
        //
        // Read raw data from server
        //
        function getServerData($command,$serveraddress,$portnumber,$waittime) {
                $serverdata                ="";
                $serverdatalen=0;
                if ($waittime< 500) $waittime= 500;
                if ($waittime>2000) $waittime=2000;
                $waittime=doubleval($waittime/1000.0);
                if (!$cssocket=fsockopen("udp://".$serveraddress,$portnumber,$errnr)) {
                        $this->errmsg="No connection";
                        return "";
                }
                socket_set_blocking($cssocket,true);
                socket_set_timeout($cssocket,0,500000);
                fwrite($cssocket,$command,strlen($command));
                //
                $starttime=$this->timenow();
                do {
                        $serverdata.=fgetc($cssocket);
                        $serverdatalen++;
                        $socketstatus=socket_get_status($cssocket);
                        if ($this->timenow()>($starttime+$waittime)) {
                                $this->errmsg="Connection timed out";
                                fclose($cssocket);
                                return "";
                        }
                } while ($socketstatus["unread_bytes"] );
                fclose($cssocket);
                return $serverdata;
        }
        function getnextstring(&$data) {
                $temp="";
               $counter=0;
                while (ord($data[$counter++])!=0) $temp.=$data[$counter-1];
                $data=substr($data,strlen($temp)+1);
                 return $temp;
        }
        function getnextbytevalue(&$data) {
                $temp=ord($data[0]);
          $data=substr($data,1);
          return $temp;
        }
        // **********************************************************************
        // getServerinfo
        // Return true if successful
        // **********************************************************************
        function getServerInfo($serveraddress,$portnumber,$waittime) {
                $cmd="\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00";
                $serverdata=$this->getServerData($cmd,$serveraddress,$portnumber,$waittime)        ;
                // Check length of returned data, if < 5 something went wrong
                if (strlen($serverdata)<5) return false;
                // Strip OOB data
                $serverdata=substr($serverdata,5);
                $this->m_servervars["serveraddress"]        =$this->getnextstring($serverdata);
                $this->m_servervars["servername"]                        =$this->getnextstring($serverdata);
                $this->m_servervars["mapname"]                                =$this->getnextstring($serverdata);
                $this->m_servervars["game"]                                                =$this->getnextstring($serverdata);
                $this->m_servervars["gamename"]                                =$this->getnextstring($serverdata);
                $this->m_servervars["currentplayers"]        =$this->getnextbytevalue($serverdata);
                $this->m_servervars["maxplayers"]                        =$this->getnextbytevalue($serverdata);
                return true;
        }
        // **********************************************************************
        // Get Playerinfo
        // Return true if successful
        // **********************************************************************
}
      $serveradr ="$serverip";
    $serverport="$serverport";
    $csinfo=new CounterStrike;
    $status=$csinfo->getServerInfo($serveradr,$serverport,1000);
        ?>
<!-- konec hlavniho skriptu -->
<!-- defionovani vzhledu -->
<div class="morelink2">
   <?php  echo"$servername";  ?> (Map: <?=$csinfo->m_servervars["mapname"] ?>) <br>
    IP: <?php  echo"$serverip:$serverport";   ?>  Slot:
    <?=$csinfo->m_servervars["currentplayers"] ?> /
    <?=$csinfo->m_servervars["maxplayers"] ?>
</div>


Tehát a kérdésem a következő, hogyan tudok vele több szervert lekérdezni. Próbáltam még egy ilyen külön oldalt készíteni és be include-zni a főoldalba, de nem jött össze.

A segítséget előre is köszönöm!


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 7 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 14 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole