webForumDet fria alternativet

Kontrollera status på CS-Server?

PHP

15 svar · 1 667 visningar · startad av streetrobban

Medlem sedan jan. 20011 140 inlägg
Frågan#1

Tja!
Jag undrar hur man med hjälp av PHP kan kontrollera statusen på en Counter-Strike server för att sedan skriva ut det på sin hemsida. Typ "Server: Online" eller "Server: Offline"... Tack på förhand!

Medlem sedan okt. 2004392 inlägg
#2

Hej!
streetrobban: Jag har inte det svar du söker, men jag vill fråga samma som din fråga fast lite mer "extended"...

streetrobban ville bara veta om servern var online/offline
men jag vill veta lite mer... typ som Vilken map den är på, hur många som är inne, vem som är inne osv.. allt annat man kan komma åt, vill jag komma åt

Tackar också i förhand!

Medlem sedan juni 20006 031 inlägg
#3

Snakes skrev:

Hej!
streetrobban: Jag har inte det svar du söker, men jag vill fråga samma som din fråga fast lite mer "extended"...

streetrobban ville bara veta om servern var online/offline
men jag vill veta lite mer... typ som Vilken map den är på, hur många som är inne, vem som är inne osv.. allt annat man kan komma åt, vill jag komma åt

Tackar också i förhand!

Kanske moostat kan vara något för dig
http://www.moolok.com/moostat/

Medlem sedan jan. 20011 140 inlägg
#4

Tack för svaren!

Snakes: Något som du beskriver skulle vara suveränt, men jag nöjer mig även med att bara visa "status" på servern.

Pedda: Jag hittade ett liknande script fast lite enklare. Men när jag prövar dem båda får jag alltid följande samma felmeddelande.

Warning: fread(): Length parameter must be greater than 0. in /mooSTAT_hl.php on line 15

Vet dock inte hur jag ska åtgärda detta.

Medlem sedan dec. 2004290 inlägg
#5

Detta scriptet letade jag upp på phpsidan.nu (eller om det var phpportalen.se), fungerar utmärkt oberoende på vad safe mode är satt på. Se länk..

Medlem sedan jan. 20011 140 inlägg
#6

ChristianS: Tack för scriptet! Jag testade att bara byta ut adressen och porten till min server. Men det funkar inte. Det tar jättelång tid för sidan att laddas och när den väl är klar så kommer inga uppgifter upp. Jag får dock inget felmeddelande. Vet någon var felet kan ligga?

Medlem sedan jan. 20011 140 inlägg
#7

Hallå? Ingen som vet vad felet kan vara?

Medlem sedan juni 20006 031 inlägg
#8

Du får nog posta raderna med kod där felet ligger om nån ska kunna hjälpa dig.

Medlem sedan jan. 20011 140 inlägg
#9

Pedda: Om jag visste vilka rader felet var på skulle jag pasta dom. Men eftersom jag inte får något felmeddelande så vet jag inte vad jag ska pasta. Så jag skickar hela koden:

<html>
<title></title>
<head>
</head>
<body>

<?

   $srvip = "213.114.233.231"; $srvp = "1200"; /* srvip= servern, srvp= port */

   $consrv = fsockopen("udp://" . $srvip, $srvp); 
    fputs($consrv, "ÿÿÿÿinfostring");  $ble = fread($consrv, 220);  $inf = explode("\\", $ble);
	  if ($inf[28] == 'l') $sys = "Linux"; else $sys = "Windows"; 
	  if ($inf[26] == '1') $pass = "Yes"; else $pass = "No"; 
	  if ($inf[24] == 'd') $delis = "Dedicated Server"; else $delis = "Listen Server"; 
    unset($consrv); 
 if ($inf[2] == 46) {
   print"<br><b>Hostname</b>:<i> $inf[18]</i><br><b>IP</b>:<i> $srvip:$srvp</i><br><b>Game</b>: <i>$inf[16]</i><br><b>Players</b>:<i> $inf[6]/$inf[12]</i><br><b>Map</b>:<i> $inf[20]</i><br><b>Type</b>: <i>$delis</i><br><b>OS</b>:<i> $sys</i><br><b>Password</b>:<i> $pass</i>"; 
  
 } else {
   print"<p><br><b>Hostname</b>:<i> $inf[20]</i><br><b>IP</b>:<i> $srvip:$srvp</i><br><b>Game</b>: <i>$inf[18]</i><br><b>Players</b>:<i> $inf[6]/$inf[12]</i><br><b>Map</b>:<i> $inf[22]</i><br><b>Type</b>: <i>$delis</i><br><b>OS</b>:<i> $sys</i><br><b>Password</b>:<i> $pass</i></p>"; 
 }

?>
</body>
</html>
Medlem sedan juni 20006 031 inlägg
#10

Koden du postade funkar för mig.
Den skriver ut:

Hostname: [Sektion.8]
IP: 213.114.233.231:1200
Game: Counter-Strike
Players: 0/10
Map: de_cbble
Type: Dedicated Server
OS: Windows
Password: Yes

Testa att lägga till överst på sidan:

<?php
 error_reporting(E_ALL);
ini_set('display_errors', true);
?>
Medlem sedan jan. 20011 140 inlägg
#11

Vad konstigt! Det är ju så det ska se ut. Jag får följande meddelande på samma kod:

Notice: Undefined offset: 28 in /home/kunder/cs.php on line 19

Notice: Undefined offset: 26 in /home/kunder/cs.php on line 20

Notice: Undefined offset: 24 in /home/kunder/cs.php on line 21

Notice: Undefined offset: 2 in /home/kunder/cs.php on line 23

Notice: Undefined index: 20 in /home/kunder/cs.php on line 27

Notice: Undefined index: 18 in /home/kunder/cs.php on line 27

Notice: Undefined index: 6 in /home/kunder/cs.php on line 27

Notice: Undefined index: 12 in /home/kunder/cs.php on line 27

Notice: Undefined index: 22 in /home/kunder/cs.php on line 27

Hostname: 
IP: thaa.kicks-ass.net:1200
Game: 
Players: /
Map: 
Type: Listen Server
OS: Windows
Password: No

Den enda skillnaden med koden jag testade nu var att byta ut ip adressen till thaa.kicks-ass.net:1200 som är DNS'en. Ligger felet hos mitt webhotell eller?

EDIT: Jag får exakt samma fel när jag provar med IP-adressen istället.

Medlem sedan jan. 20011 140 inlägg
#12

*BUMP* Fortfarande ingen som vet var felet ligger? Är det hos mitt webbhotell? Jag använder mig av Crystone AB.

Medlem sedan nov. 2001348 inlägg
#13

Aktivera gd2-dll:en och sockets-dll:en som finns till php-installationen. Brukar fungera efter det.

Medlem sedan juni 2002346 inlägg
#14

enklast vore väl att köra qstat.

https://www.qstat.com

$query = NULL;
exec("/dir/till/qstat -$prefix $ip:$port -raw @_@", $query);
$server = preg_split('/@_@/',$query[0],-1,PREG_SPLIT_NO_EMPTY);

nått åt det hållet.

visst, kan man scripta egen klass för att quera spelservrar så väljer man det helst men qstat är en bra början. Mer info om Hex o sånt kan du hittta @ http://dev.kquery.com

Medlem sedan jan. 20021 122 inlägg
#15

Nu verkar det ju som om ni fått det att funka, men

fputs($consrv, "ÿÿÿÿinfostring");  $ble = fread($consrv, 220);  $inf = explode("\", $ble);

exploden borde nog ha "\\" som avgränsare istället. Det borde bli fel på den raden.

Medlem sedan nov. 2001348 inlägg
#16

pettsson skrev:

Nu verkar det ju som om ni fått det att funka, men

fputs($consrv, "ÿÿÿÿinfostring");  $ble = fread($consrv, 220);  $inf = explode("\", $ble);

exploden borde nog ha "\\" som avgränsare istället. Det borde bli fel på den raden.

Utan dubbla såna så får jag:

Parse error: syntax error, unexpected T_STRING in eh.php on line 20

Med dubbla så får jag detta:

Notice: Undefined offset: 28 in eh.php on line 16

Notice: Undefined offset: 26 in eh.php on line 17

Notice: Undefined offset: 24 in eh.php on line 18

Hostname: #uG.net | UniversalGaming.net | WS #9 :: BOKAD
IP: cs.universalgaming.net:27019
Game: Counter-Strike
Players: 8/14
Map: de_nuke
Type: Listen Server
OS: Windows
Password: No

Koden som orsakar det senare felet:

<html>
<title></title>
<head>
</head>
<body>

<?

   $srvip = "cs.universalgaming.net"; $srvp = "27019"; /* srvip= servern, srvp= port */

   $consrv = fsockopen("udp://" . $srvip, $srvp); 
    fputs($consrv, "ÿÿÿÿinfostring");  $ble = fread($consrv, 220);  $inf = explode("\\", $ble);
      if ($inf[28] == 'l') $sys = "Linux"; else $sys = "Windows"; 
      if ($inf[26] == '1') $pass = "Yes"; else $pass = "No"; 
      if ($inf[24] == 'd') $delis = "Dedicated Server"; else $delis = "Listen Server"; 
    unset($consrv); 
 if ($inf[2] == 46) {
   print"<br><b>Hostname</b>:<i> $inf[18]</i><br><b>IP</b>:<i> $srvip:$srvp</i><br><b>Game</b>: <i>$inf[16]</i><br><b>Players</b>:<i> $inf[6]/$inf[12]</i><br><b>Map</b>:<i> $inf[20]</i><br><b>Type</b>: <i>$delis</i><br><b>OS</b>:<i> $sys</i><br><b>Password</b>:<i> $pass</i>"; 
  
 } else {
   print"<p><br><b>Hostname</b>:<i> $inf[20]</i><br><b>IP</b>:<i> $srvip:$srvp</i><br><b>Game</b>: <i>$inf[18]</i><br><b>Players</b>:<i> $inf[6]/$inf[12]</i><br><b>Map</b>:<i> $inf[22]</i><br><b>Type</b>: <i>$delis</i><br><b>OS</b>:<i> $sys</i><br><b>Password</b>:<i> $pass</i></p>"; 
 }

?>
</body>
</html>

Hjälp?

258 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)