Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
WebApi für Serverinformationen auf eigener Homepage
#1
Derzeit suche ich nach einer Möglichkeit alle relevanten Daten des Server auf der Homepage in Form eines PHP-Scripts anzeigen zu lassen.

Beispiel:
Serveradresse
Spieler
Aktive Spieler
Map eventuell mit Bild
Serverversion
Pakset

Allerdings konnte ich bisher noch keine Scripte finden mit denen das möglich ist.

Mfg
Kimahri
Zitieren
#2
Es gibt ja die Listing-Server die allerdings nicht sehr stabil zu laufen scheinen. Regelmäßig sind die nicht erreichbar.

http://servers.simutrans.org/list Standard
http://list.extended.simutrans.org:8080/list Extended

Ich kann Dir nicht sagen, ob der zu Grunde liegende Code frei verfügbar ist.
Auch ist deren Adresse direkt im Code wohl fest eingestellt. Also selbst wenn man einen eigenen Listing-Server aufsetzt muss man dessen Adresse im Code ändern und neu compilieren.

Bei den ersten Netzwerkversionen von Simutrans wurden die Daten ( bis auf die grafische Karte ) per Link und Get-Parameter vom Simutrans-Server selber aus übertragen. Da müsste ich die entsprechenden php-Dateien wieder ausgraben. Keine Ahnung ob man das im Code wieder reaktivieren kann oder als Option zur Verfügung stellen kann.

Die aktuellen Listing-Server fragen wohl die Simutrans-Server regelmäßig ab um deren online-Status zu ermitteln. Das war bei der ersten Implementierung nicht der Fall, da ich auf meinen Web-Server keine Cron-Jobs ausführen darf.
Zitieren
#3
Ich frage mich ob es möglich ist die UDP-Pakete nicht irgendwie einzulesen via PHP?

Denn soweit ich das feststellen konnte werden die Pakete von ST ja via UDP versendet oder irre ich mich da?

Ich wälze auch schon seit stunden google wie ich die UDP-Pakete auslesen kann um sie eventuell ausgeben lassen zu können.
Zitieren
#4
Die UDP-Pakete enthalten aber keine Infos mehr zu den Kartendaten selber sondern synchronisieren nur die Karte.

Aber schau Dir mal die nettools/nettool.cc im Quellcode an. Da dort auch ein Makefile liegt geh ich davon aus, das es sich da um das Listingserver-Seitige Programm handelt.

Bisher hat man meines Wissens aber keine Möglichkeit die Adresse für so einen Listingserver selber vorzugeben ausser eben im Quellcode zu ändern.

Aber auf Grund der Instabilitäten wäre es durchaus wünschenswert da Spiegelserver zu haben. Der Listserver von Standard ist aktuell nicht erreichbar.
Zitieren
#5
(03-05-2018, Thursday-13:48:43 )Wurzelgnom schrieb: Die UDP-Pakete enthalten aber keine Infos mehr zu den Kartendaten selber sondern synchronisieren nur die Karte.

Aber schau Dir mal die nettools/nettool.cc im Quellcode an. Da dort auch ein Makefile liegt geh ich davon aus, das es sich da um das Listingserver-Seitige Programm handelt.

Bisher hat man meines Wissens aber keine Möglichkeit die Adresse für so einen Listingserver selber vorzugeben ausser eben im Quellcode zu ändern.

Aber auf Grund der Instabilitäten wäre es durchaus wünschenswert da Spiegelserver zu haben. Der Listserver von Standard ist aktuell nicht erreichbar.

Danke für den hinweis allerdings lassen meine Kenntnisse dort etwas zu wünschen übrig. Hast du vllt zeit zum quatschen? Teamspeak 3 oder Discord hab ich im angebot.
Zitieren
#6
Da musste Dich mit prissi, Dwachs oder Timothy oder mit einem der anderen Programmierer im int.Forum unterhalten.

Ich hab davon null Ahnung und auch keine Zeit mich da rein zu arbeiten.

Zumal ich das seit Jahren nicht wirklich verfolge.
Zitieren
#7
Ok besten dank. Werde mich mal umsehen und rumfragen im Internatinalem Forum sollte ich was hilfreiches bekommen gebe ich hier natürlich bescheid!
Zitieren
#8
Also erst einmal, wenn dein Server nicht im Listing auftaucht, dann ist er schlicht nicht von anderen zu erreichen. Der Listserver versucht nämlich, wenn er ein Paket bekommt, den Server unter seiner angegebenen Adresse zu erreichen. Klappt das nicht (z.B. weil hinter einem Router), dann wird das Paket ignoriert.

Simutrans Server sind wie Peer-to-Peer, der zentrale Listserver vermittelt keine Spiele und daher kann ein Server hinter einem NAT-Router/Firewall nicht erreicht werden.

Der Listserver ist in Node.js implementiert; allerdings startet mein Provider diesen Server unregelmaessing (und unangekündigt) neu, und ein automatisch startendes Iniscript verweigert den Dienst (da es die IP tables anfassen muss, die aber dann noch nicht endgültig initialisiert waren.) Ich habe irgenwann aufgegen, das Neustarten zu automatisieren.

Ich kann den Code gerne mal raussuchen. Ein API gibt es nicht. Die Verbindung ist TCP mit servers.simutrans.org. Du kannst deine Host-Datei ändern, um dass umzuleiten. Aber wie gesagt, wenn der Server dich nicht sieht, wird es auch kein Spieler können (oder die hast deine Adresse für den Server falsch angegeben (Kommandozeile oder simuconf-Datei).
Zitieren
#9
Er läuft auf 120.2.2 mit dem PAK128.german. Ich kann auf dem Server problemfrei Spielen. Nur auf dem Listserver tauchte er nicht auf^^

wäre in einem späterem release vllt eine Funktion möglich einen 2 Listenserver angeben zu können?
Zitieren
#10
Kann jemand von außerhalb sich auf deinen Server verbinden? Falls ja, musst du diese IP-Adresse und postnummer beim Serverstart mit angeben "-serverdns 133.149.0.17:5002" oder "-serverdns simu44.dyndns.org:13353" in der Kommandozeile bzw als "server_dns = 133.149.0.17:5002"

Das muss die Adresse sein, die Dienste wie "Meine IP Adresse" (z.B: https://www.wieistmeineip.at/) ausgeben. Außerdem muss mein bei den meisten Routern Portforwarding einschalten.

Sollte man von außerhalb sich mit deinem Server verbinden können, dann sollte dieser (obigen Information an den Server verfüttert) auch in der Liste erscheinen. Allerdings könnte ich auch gerne eine automatische IP-Erkennung einbauen (z.B. via http://api.ipify.org Nur ohne port-forwarding wird es trotzdem wenig Erfolgserlebnisse haben. UPnP ist heutzutage oft deaktiviert, denn das soll ja gerade Malware das Tunneln verhindern.
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste