Aktuelle Spieleranzahl per PHP-Script auf Server-Website anzeigen lassen

Dieses Thema im Forum "Technischer Support" wurde erstellt von ChrisX930, 8. Juli 2012.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. ChrisX930
    Offline

    ChrisX930

    Registriert seit:
    18. Mai 2012
    Beiträge:
    11
    Hallo Community,
    ich möchte auf meiner neuen Website, die extra für den Minecraftserver aufgebaut wurde, ein PHP-Script einbinden, mitdem ich die aktuelle Spieleranzahl auf dem Server anzeigen lassen kann.
    Das PHP-Script, mitdem man anzeigen lassen kann ob der Server online oder offline ist, war recht simpel, jedoch weiß ich nicht, wie ich die aktuelle Spieleranzahl anzeigen lassen kann.
    Könnte mir jemand damit helfen?
    HAt jemand ein simples PHP-Script dafür?

    Dies ist das Script, was ich nutze, um den Serverstatus anzeigen zu lassen:
    Code (Text):
    1. <?php
    2. $ip = "SERVERIP";
    3. $port = "25565";
    4. if (!@$fp = fsockopen($ip, $port, $errno, $errstr, 1)){
    5.                             echo "<font color='#FF0000'>Offline</font>";
    6.                             }
    7.                             else {
    8.                             echo "<font color='#00FF00'>Online</font>";
    9.                             }; ?>

    Gruß ChrisX930
     
    #1
  2. Let's Mine
    Offline

    Let's Mine Ehem. Teammitglied

    Registriert seit:
    1. Dezember 2011
    Beiträge:
    421
    Ort:
    Let's Mine
    Minecraft:
    LetsMine
    Code (Text):
    1. <?php
    2.     $fp = fsockopen('176.9.59.135', 25565, $errno, $errstr, 4) or die('Verbindung fehlgeschlagen!');
    3.     fwrite($fp, "\xFE");
    4.     $answer = fread($fp, 256);
    5.     if ($answer[0] != "\xFF") {
    6.        die ('Anfrage fehlgeschlagen!');
    7.     }
    8.     $text = substr($answer, 3);
    9.     $text = mb_convert_encoding($text, 'auto', 'UCS-2');
    10.     $parts = explode("\xA7", $text);
    11. ?>
    12. <?php echo $parts[0] . ' (' . $parts[1] . '/' . $parts[2] . ')'; ?>
    Da, zeigt SERVERMOTD (SPIELERZAHL/SPIELERMAX) an. Geht ohne Query, da es das Paket der normalen Minecraft Server Liste schickt.
     
    #2
  3. Cabraca
    Offline

    Cabraca

    #3
  4. ChrisX930
    Offline

    ChrisX930

    Registriert seit:
    18. Mai 2012
    Beiträge:
    11
    Vielen Dank, hat funktioniert :D
     
    #4
  5. ChrisX930
    Offline

    ChrisX930

    Registriert seit:
    18. Mai 2012
    Beiträge:
    11
    Heya, es gibt dann doch noch ein Problem, denn jedesmal, wenn der Server offline sein sollte, erhalten die nutzer auf der Website folgende Fehlermeldung:

    Ich möchte, dass statt dieser Fehlermeldung einfach statt (ONLINESPIELER/20) folgendes angezeigt wird (0/0).
     
    #5
  6. SKV-Craft
    Offline

    SKV-Craft

    Registriert seit:
    5. Februar 2012
    Beiträge:
    110
    Minecraft:
    elo_matreb
    Code (Text):
    1. <?php
    2. if ( @fsockopen("127.0.0.1", 25565, $errno, $errstr, 5) ) { <dein Script> } else { echo "Server offline"; }
    3. ?>
    4.  
    ;) Nutzen wir auch. Gibt aber auch die Möglichkeit JSONAPI dafür zu nehmen, mag ich persönlich lieber.

    --_elomatreb.
     
    #6
  7. ChrisX930
    Offline

    ChrisX930

    Registriert seit:
    18. Mai 2012
    Beiträge:
    11
    Code (Text):
    1. <?php
    2. $ip = "www.******.de";
    3. $port = "*****";
    4. $port4 = "*****";
    5. $port5 = "****";
    6. $port6 = "*****";
    7. ?>
    8.  
    9. <?php
    10.  if ( @fsockopen($ip, $port6, $errno, $errstr, 5) ) {
    11.     $answer = fread($fp, 256);
    12.     if ($answer[0] != "\xFF") {
    13.     die ('Anfrage fehlgeschlagen!');
    14.     }
    15.     $text = substr($answer, 3);
    16.     $text = mb_convert_encoding($text, 'auto', 'UCS-2');
    17.     $parts = explode("\xA7", $text);
    18. echo $parts[0] . ' (' . $parts[1] . '/' . $parts[2] . ')';
    19.  
    20. } else { echo "(0/0)"; }
    21.  
    22. ?>
    Kommt folgendes Raus wenn Server ONLINE:
     
    #7
  8. SKV-Craft
    Offline

    SKV-Craft

    Registriert seit:
    5. Februar 2012
    Beiträge:
    110
    Minecraft:
    elo_matreb
    Du hast vergessen $fp zu definieren ? ;)

    --_elomatreb.
     
    #8
  9. ChrisX930
    Offline

    ChrisX930

    Registriert seit:
    18. Mai 2012
    Beiträge:
    11
    Ah shit >_> Komme gerade durcheinander ._.
    Könntest du mir den COde fertigmachen?
    Wäre wirklich sehr nett :D
     
    #9
  10. little_psycho11
    Offline

    little_psycho11

    Registriert seit:
    5. Februar 2012
    Beiträge:
    641
    Minecraft:
    little_psycho11
    Das mit der Spielerzahl wurde doch schon gepostet.
    Code (Text):
    1. <?php
    2.     $fp = fsockopen('176.9.59.135', 25565, $errno, $errstr, 4) or die('Verbindung fehlgeschlagen!');
    3.     fwrite($fp, "\xFE");
    4.     $answer = fread($fp, 256);
    5.     if ($answer[0] != "\xFF") {
    6.        die ('Anfrage fehlgeschlagen!');
    7.     }
    8.     $text = substr($answer, 3);
    9.     $text = mb_convert_encoding($text, 'auto', 'UCS-2');
    10.     $parts = explode("\xA7", $text);
    11. ?>
    12. <?php echo $parts[0] . ' (' . $parts[1] . '/' . $parts[2] . ')'; ?>
    Du musst doch nur Deine IP und Port oben eintragen....
     
    #10
  11. ChrisX930
    Offline

    ChrisX930

    Registriert seit:
    18. Mai 2012
    Beiträge:
    11
    Genau das habe ich bereits getan, jedoch erhalte ich, wenn der Server Offline ist, einen weißen Browserbildschirm mit folgender Meldung:

    Ich möchte statt dieser Fehlermeldung einfach dort, wo sonst auch die Spieleranzahl steht, ein (0/0) stehen haben und keinen weiße Fläche mit dieser Meldung
     
    #11
  12. little_psycho11
    Offline

    little_psycho11

    Registriert seit:
    5. Februar 2012
    Beiträge:
    641
    Minecraft:
    little_psycho11
    Wie lange lädt die Seite denn?
     
    #12
  13. ChrisX930
    Offline

    ChrisX930

    Registriert seit:
    18. Mai 2012
    Beiträge:
    11
    bis die Seite gecheckt hat, dass der Port offline ist. Also schätze mal 2-3sek (höchstens)
     
    #13
  14. SKV-Craft
    Offline

    SKV-Craft

    Registriert seit:
    5. Februar 2012
    Beiträge:
    110
    Minecraft:
    elo_matreb
    Gefixter PHP-Code :) Wenn Fehler drin sind brate ich meinen Coder :p
    Code (Text):
    1. <?php
    2. $ip = "www.******.de";
    3. $port = "*****";
    4. $port4 = "*****";
    5. $port5 = "****";
    6. $port6 = "*****";
    7. $url = "127.0.0.1";
    8. ?>
    9.  
    10. <?php
    11.  if ( @fsockopen($ip, $port6, $errno, $errstr, 5) ) {
    12.     $fp = fopen("$url","rb");
    13.     $answer = fread($fp, 256);
    14.     if ($answer[0] != "\xFF") {
    15.     die ('Anfrage fehlgeschlagen!');
    16.     }
    17.     $text = substr($answer, 3);
    18.     $text = mb_convert_encoding($text, 'auto', 'UCS-2');
    19.     $parts = explode("\xA7", $text);
    20. echo $parts[0] . ' (' . $parts[1] . '/' . $parts[2] . ')';
    21.  
    22. } else { echo "(0/0)"; }
    23.  
    24. ?>
     
    #14
  15. ChrisX930
    Offline

    ChrisX930

    Registriert seit:
    18. Mai 2012
    Beiträge:
    11
    Naja, nun lädt die Seite nichtmehr.
    Nach dem Code zu urteilen wird man, wenn der Server offline ist, nur auf eine andere URL weitergeleitet, richtig?





    500 - Interner Serverfehler.

    Problem bei der gesuchten Ressource. Sie kann nicht angezeigt werden.
     
    #15
  16. ChrisX930
    Offline

    ChrisX930

    Registriert seit:
    18. Mai 2012
    Beiträge:
    11
    Das ist schon ein bisschen viel gecode, und dann auch noch unkommentiert. Wie soll man da als Laie durchblicken?
    Ich warte lieber auf die Antwort von chrisliebaer
     
    #16
  17. ChrisX930
    Offline

    ChrisX930

    Registriert seit:
    18. Mai 2012
    Beiträge:
    11
    wie gesagt, wenn ich dieses Script verwende (damit meine ich anzeige.php", wird mir zwar angezeigt, wieviele Spieler online sind, aber wenn der Minecraftserver ausfallen sollte, schmiert das Script und somit meine Website ab.

    Das passiert, wenn mein Server ausfällt:

    Das einzige, was ich möchte, ist, dass das Script statt diesem Fehler einfach "(0/0)" ausgibt, mehr nicht.
    Das ganze müsste auch OHNE Minequery funktionieren.
     
    #17
  18. ChrisX930
    Offline

    ChrisX930

    Registriert seit:
    18. Mai 2012
    Beiträge:
    11
    EDIT:
    Hat sich geklärt :D Vielen Dank chrisliebaer!
    Jetzt funktioniert es genauso wie es sein soll :D
     
    #18
Status des Themas:
Es sind keine weiteren Antworten möglich.