Minecraft onlinestatus
lima-city → Forum → Programmiersprachen → Sonstige Programmiersprachen
anpassen
antwort
anzahl
byte
dank
funktion
gemacht code
host
http
import
list
maximale anzahl
modul
port
realisieren
server
set
sonstige programmiersprachen
spieler
url
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Da nicht beschrieben ist, wie und mit welcher Programmiersprache das gelöst werden soll:
verschoben nach "sonstige Programmiersprachen" -
Schau mal hier: http://wiki.nitrado.net/index.php/Serverstatus_script
-
Falls du einen Bukkit-Server benutzt, kann ich dir nur das Plugin SimplePlayerList (http://dev.bukkit.org/server-mods/simple-player-list/ empfehlen. Das funktioniert eigentlich recht gut, du musst zum einen das Plugin installieren und per andere Dateien auf einen Webspace hochladen. Dann nurnoch die Config anpassen.
Ich hoffe ich konnte dir noch helfen. -
mf-hd schrieb:
Könntest du mit PHP realisieren ( fopen..), oder du nimmst xPaw's Minecraft-Query
Nicht fopen!
Wenn CGI bloß funktionieren würde...
...dann könte man es viel besser lösen! -
Hallo
http://www.elitepvpers.com/forum/minecraft-guides-strategies/1427555-php-funktion-status-api.html
^ das funktioniert auf jeden Fall.
$serverstatus = mc_status(serverip:port);
echo "Server online, ".$serverstatus[cur_players]." of ".$serverstatus[max_players]." are on the server, the MOTD is ".$serverstatus[motd]."";
Oder so ähnlich.
mfg -
So was lässt sich übrigens auch ganz einfach selbst programmieren, ich hab' so was letztens mal in Python gemacht:
#!/usr/bin/python3 import socket from distutils.version import StrictVersion def getinfo(host, port, timeout): ## Set up socket: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(timeout) s.connect((host, port)) ## Send request: s.send(b"\xfe") s.send(b"\x01") ## Receive response: data = s.recv(300).decode("utf8", "ignore").split("\x00\x00\x00") ## Close socket: s.close() ## Get server info: return { "version": StrictVersion(data[2].replace("\x00", "")), "hostname": data[3].replace("\x00", ""), "players": int(data[4]), "maxplayers": int(data[5]) }
Man sendet einfach ein FE-Byte und danach in einem extra Paket nochmal ein 01-Byte (beides Hexadezimal-Schreibweise) an den Minecraft-Server und bekommt als Antwort Server-Version, den Namen des Servers (als UTF-16), die Anzahl der Spieler und die maximale Anzahl der Spieler.
Lg
cookies
PS: Wenn du natürlich nur wissen willst, ob der Server online ist, kannst du dich einfach testweise verbinden und schauen, ob eine Bestätigung, ein Fehler oder gar nichts (-> Timeout) zurück kommt. Sollte bei PHP mit fsockopen() kein Problem sein, bei Python einfach mit dem socket-Modul, so ähnlich wie in meinem Beispielscript oben.
Beitrag zuletzt geändert: 22.2.2013 18:11:19 von cookies -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage