webForumDet fria alternativet

Kontrollera status på CS-Server?

15 svar · 1 665 visningar · startad av streetrobban

streetrobbanMedlem sedan jan. 20011 140 inlägg
#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!

SnakesMedlem 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!

PeddaMedlem sedan juni 20006 032 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/

streetrobbanMedlem 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.

ChristianSMedlem 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..

streetrobbanMedlem 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?

streetrobbanMedlem sedan jan. 20011 140 inlägg
#7

Hallå? Ingen som vet vad felet kan vara?

PeddaMedlem sedan juni 20006 032 inlägg
#8

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

streetrobbanMedlem 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>
PeddaMedlem sedan juni 20006 032 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);
?>
streetrobbanMedlem 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.

streetrobbanMedlem 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.

nisslassMedlem sedan nov. 2001348 inlägg
#13

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

WiZzLeRMedlem 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

pettssonMedlem 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.

nisslassMedlem 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?

140 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)