• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Serverstatus online abrufen?

Status
Für weitere Antworten geschlossen.
N

naseweis520

Guest
Hallo Comunity,

also, ich hab folgendes Problem:
Ich würde gerne auf meiner Website meinen Serverstatus abrufen!
Also On-/Offline und Slotauslastung!
Benötige ich dafür etwa ein spezielles Plugin?
Oder geht das alleine mit Webscript?

Würde mich sehr freuen,
wenn ihr mir helft!
 
X

|| xX [DEV][LP] Ms. DivaCraft Xx ||

Guest
Cabracas Script ist eine Funktion. Benutzen tust du die Funktion so:

$ret = ping(HOST,PORT_WENN_ANDERS,TIMEOUT_WENN_GEWÜNSCHT_MODIFIZIEREN);

Sollte auch ohne Port und Timeout gehen.

dann kannst du So ausgeben:

$ret['motd'] die motd ausgeben
$ret['players'] die Slots
$ret['max_players'] normale Slots

PS: Es heißt das Script nicht der Script.
 
N

naseweis520

Guest
Fehler über Fehler...

Cabracas Script ist eine Funktion. Benutzen tust du die Funktion so:

$ret = ping(HOST,PORT_WENN_ANDERS,TIMEOUT_WENN_GEWÜNSCHT_MODIFIZIEREN);

Sollte auch ohne Port und Timeout gehen.

dann kannst du So ausgeben:

$ret['motd'] die motd ausgeben
$ret['players'] die Slots
$ret['max_players'] normale Slots

PS: Es heißt das Script nicht der Script.



Hallo,
ähm, ich erhalte diese Fehlermeldung (Xampp-Test):

Fatal error: Call to undefined function ping() in C:\Xampp\htdocs\Test\Test.php on line 4


Hier DAS Script:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php
$ret = ping(s.minecraft-herocraft,de,25565,5);
?>
</head>
<body>
<?php echo ($ret['motd']); ?>
<br />
<?php echo ($ret['players']); ?>
<br />
<?php echo ($ret['max_players']); ?>
</body>
</html>


Was habe ich falsch gemacht? cow
 
Zuletzt bearbeitet von einem Moderator:

Calenria

Braumeister
Registriert
28 Juli 2012
Beiträge
386
Alter
42
Diamanten
150
Minecraft
Calenria
du rufst mit "$ret = ping(s.minecraft-herocraft,de,25565,5);" eine Funktion auf die du vorher weder definiert noch eingebunden hast.

Also entweder bastelst die Funktion aus dem Quelltext noch mit in dein Script oder du speicherst sie als eigene Datei und lädst sie mit require_once() in dein Script.
 

Benni1000

Ehemaliges Teammitglied
Ehem. Teammitglied
Registriert
4 Mai 2012
Beiträge
1.396
Diamanten
0
Es gibt mehrere Probleme:
1. Du hast das script nicht eingebunden, daher existiert auch die Funktion nicht.
2. Du hast einen beistrich anstelle eines punktes benutzt.
3. Deine Serveradresse ist ein String und muss daher zwischen zwei anführungszeichen stehen.
 
N

naseweis520

Guest
Schon wider...

Also, das mit dem String ist mir noch aufgefallen... (Sorry, Tippfehler)

Nun habe ich das nochmal neu getippt/kopiert und erhalte wieder einen (Xampp-)Fehler:
Code:
[B]Notice[/B]:  Uninitialized string offset: 0 in [B]C:\Xampp\htdocs\Test\PHP.php[/B] on line [B]18[/B]

Und hier DAS Script:
Code:
<html>
 <!-- Ich weiß, es fehlt Doctype und co. -->
 <head>
  <?php
   function ping($host, $port=25565, $timeout=5) {
  //Set up our socket
  $fp = fsockopen($host, $port, $errno, $errstr, $timeout);
  if (!$fp) return false;

  //Send 0xFE: Server list ping
  fwrite($fp, "\xFE0000");

  //Read as much data as we can (max packet size: 241 bytes)
  $d = fread($fp, 256);
  echo bin2hex($d)."<br>";

  //Check we've got a 0xFF Disconnect
  if ($d[0] != "\xFF") return false;

  //Remove the packet ident (0xFF) and the short containing the length of the string
  $d = substr($d, 3);

  //Decode UCS-2 string
  $d = mb_convert_encoding($d, 'auto', 'UCS-2');

  //Split into array
  $d = explode("\xA7", $d);

  //Return an associative array of values
  return array(
  'motd' => $d[0],
  'players' => intval($d[1]),
  'max_players' => intval($d[2]));
  }
  ?>
 </head>
 <body>
  <?php
  $ret = ping('server.test.de',25565,25); ?>
  <?php echo ($ret['motd']); ?>
  <br />
  <?php echo ($ret['players']); ?>
  <br />
  <?php echo ($ret['max_players']); ?>
 </body>
</html>



Was mache ich immer falsch? :down:
 
Status
Für weitere Antworten geschlossen.
Oben