Server Tracker Monitor

Moderators: sung, Pr0d1gY, zulu, admin

Server Tracker Monitor

Postby admin » Tue Dec 20, 2022 5:38 am

Here I leave some important information about how handler the query ports to create and show up the server monitor to put into some website



Little script called LGSL By Richard Perry (that worked before, but not now "I duno why!" )
https://farcry-wars.com/lgsl-master/

The FarCry game use a protocol called: ASE (All Seeing Eye), to do the query requests for the servers game.
Detects the All-Seeing Eye service. Provided by some game servers for querying the server's status.
The All-Seeing Eye service can listen on a UDP port separate from the main game server port (usually game port + 123). On receiving a packet with the payload "s", it replies with various game server status info... Like: the server name, game type, map name, current number of players, maximum number of players, player information, and various other information.

Here is some reference links:
https://int64.org/docs/gamestat-protocols/ase.html
https://www.codeproject.com/Articles/88 ... ry-Library
https://developer.valvesoftware.com/wiki/Server_queries

RCON protocol
https://developer.valvesoftware.com/wik ... N_Protocol
http://aluigi.altervista.org/papers.htm#ase
https://fremnet.net/article/199/source-rcon-class

I've wrote a little script in PHP as an example to show how it works "Allsee_eye.PHP"
Code: Select all
$sv_IP = "78.45.91.240";              // Server public IP
$sv_cPort  = "49001";                            // Server Port
$sv_qPort  = "49124"; // (49001 + 123)  // Server Query Port

$fp = @fsockopen("udp://{$sv_IP}", $sv_qPort, $errno, $errstr, 1);
echo "------------------------------------------------<br>";
if ($fp) {
   // Open the steam
    stream_set_timeout($fp, 0, 500000);
    stream_set_blocking($fp, TRUE);
   
   echo "Command...<br>";
   fwrite($fp, "s"); // ASE ( ALL SEEING EYE ) PROTOCOL TO FARCRY... It's send the "s" for the server query port to request the server information data!
   
   $buffer = fread($fp, 4096);
   var_dump($buffer);
   echo "<br>";
   if ($buffer) {
       $buffer = substr($buffer, 4); // REMOVE HEADER
       echo var_dump($buffer);
   }else{
      echo "Nothing<br>";
   }
   
   while (!feof($fp)) {
      echo fgets($fp, 128);
   }   
   
}else{
   echo "ERROR<br>";
}
echo "------------------------------------------------<br>";
@fclose($fp)


It's a Plugin that was made to a CMS called e107
https://e107.org/plugins/?id=967

New LGSL version here...
https://github.com/tltneon/lgsl (v6.2)
Image
User avatar
admin
Site Admin
Site Admin
 
Posts: 75
Joined: Wed Apr 04, 2018 4:44 am
Medals: 4
Donator (1) Staff member (1) US Marines Service Medal (1) PDW Medal (1)
Has thanked: 36 times
Been thanked: 7 times


Return to DOCS

Who is online

Users browsing this forum: No registered users and 1 guest

cron