Sponsor-Board.de
Wordpress --> Gaming Server bzw. Online Stauts abfragen

+- Sponsor-Board.de (https://www.sponsor-board.de)
+-- Forum: Community (/forumdisplay.php?fid=56)
+--- Forum: Hilfe (/forumdisplay.php?fid=102)
+---- Forum: Scripting (/forumdisplay.php?fid=108)
+---- Thema: Wordpress --> Gaming Server bzw. Online Stauts abfragen (/showthread.php?tid=62369)


Wordpress --> Gaming Server bzw. Online Stauts abfragen - SlayMaSTer - 19.01.2017 10:31

Hallo Mitglieder,

ich habe ein kleines Kopfzerbrechen. Ich möchte gerne auf meiner Homepage eine Seite Namen Server einrichten. Dort soll wie beispspielsweise bei Gametracker ein kleines Fenster in der Seite erscheinen das Besucher und auch Member den Aktuellen Server Status zeigt und bei TeamSpeak 3 Servern ggf. bei Klick sofort verbindet.

Jetzt ist es bei Wordpress so, das man in die Textfelder unter Pages nur html oder Visuell bearbeiten kann. Somit keinen php Code ausführen kann. Nach ewigem suchen unter Google habe ich was gefunden. Allerdings nicht so das was ich mir darunter vorgestellt habe.

Es muss nicht umbedingt so extrem gut Aussehen wie bei Gametracker, aber zumindest der Onlinestatus und der Name des Dienstes wie: HTTP, Arma3 oder TS3 sollte doch gegeben sein. Schönes extra wäre auch noch ein jeweils dazugehöriges Rote und Blaues Licht.

Nun ja vil. kann mir ja jemand helfen. Es kennt jemand ein tolles Tool oder eine Lösung. Vielleicht habe ich auch einfach falsch gesucht. Ich bin Neueinsteiger in Wordpress. Deshalb vergebt mir meine Unwissenheit.

Viele Grüße
Slaymaster


RE: Wordpress --> Gaming Server bzw. Online Stauts abfragen - Emptyx - 19.01.2017 10:43

Möchtest du keinen externen Dienst wie gametracker verwenden? Die benutzen nämlich zum einbinden auch nur HTML.

Für deine Gameserver kannst du ja mal dieses Plugin hier ausprobieren:
[Link: Registrierung erforderlich]

Und für den Teamspeak kannst du diese Seite verwenden. Da wird auch jediglich HTML benötigt.
[Link: Registrierung erforderlich]


RE: Wordpress --> Gaming Server bzw. Online Stauts abfragen - SlayMaSTer - 19.01.2017 10:49

Ich hätte rein theoretisch nichts gegen externe Seiten, allerdings möchte ich so wenig wie möglich Out Sourcing machen und möglichst alles Lokal auf meinem System Betreiben. Das tootl game server status hatte ich mir schon mal angeschaut, allerdings will er mir dort keine Server hinzufügen. Dementsprechen bin ich mir nicht sicher ob es auch in Live Betrieb so einwandfrei läuft.


RE: Wordpress --> Gaming Server bzw. Online Stauts abfragen - Jerr0w - 19.01.2017 11:02

Normalerweise ist PHP unter Wordpress möglich. Ich schmeiß einfach mal PHP fsockopen in den Raum.

TS3-"OnClick" Connect kriegst du mit

Code:
<a href="ts3server://127.0.0.1?port=9987&password=password">TS3-Connect</a>

hin.


RE: Wordpress --> Gaming Server bzw. Online Stauts abfragen - SlayMaSTer - 19.01.2017 11:10

Ja den HTML Tag für das TS4 One Click kenne ich bereits.
Ich habe gewisse Kentnisse in HTML aber leider sogut wie keine in PHP. Ich hätte auch nichts dagegen wenn mir jemand ein 2 Dateien system vorschlägt. Praktisch gesehen:

Webserver HTTP --> Page Server --> HTML div Container mit CSS und dem Ganzen kram. Übergabe an --> Connect.php --> Die Connection wird geprüft und gibt an HTML true oder false zurück. --> Je nach dem ob es true ist wird ein grüner Punkt gezeigt wenn es false ist wird ein Roter Punkt gezeigt.

Okay es ist verdammt Oberflächlich erklärt aber zumindest verständlich aus meiner sicht.

Wie gesagt gegen so ein System hätte ich auch nichts. Ist halt auch wieder die Frage wie man sowas in Wordpress rein bekommt.


RE: Wordpress --> Gaming Server bzw. Online Stauts abfragen - Emptyx - 19.01.2017 11:24

Schau dir das mal an:
[Link: Registrierung erforderlich]

Der zeigt dir zwar keine Spieleranzahl an, aber du kannst in deine if schleife ein offline bild und ein online bild rein machen.
PHP Datei erstellen, den Code einfügen und dann mit php include an der Stelle in Wordpress einfügen.
(php include in wordpress aktivieren: [Link: Registrierung erforderlich])

Google dich einfach mal durch und versuch ein paar Sachen, sollte eigentlich gar nicht so schwer sein, wenn du nur ein einfaches online/offline haben möchtest.


RE: Wordpress --> Gaming Server bzw. Online Stauts abfragen - SlayMaSTer - 19.01.2017 11:36

Ja das geht schon in die richtige richtung. Leider nicht optimal genug da ich ein Backup System auf Wordpress noch Laufen hab. Somit würde diese Funktion nicht einem Backup gesichert werden. Daher leider raus aus dem renne. Aber sonst sehr gue Idee werd ich mir trotzdem im Hinterkopf behalten.


RE: Wordpress --> Gaming Server bzw. Online Stauts abfragen - Jerr0w - 19.01.2017 11:42

Warum lässt du deinen Server kein Backup über Cronjob machen?

Einfach dein ganzes /var/www-Verzeichnis in eine Zip packen lassen und auf einen Server ablegen lassen. Geht relativ einfach per Cronjob.


RE: Wordpress --> Gaming Server bzw. Online Stauts abfragen - SlayMaSTer - 19.01.2017 12:09

Das wäre bestimmt auch noch eine Lösung. Ich möchte nur vorerst einmal schauen das alles soweit mit dem Server klappt und wenn alles läuft kann man immer noch das Backup ändern. Wobei ich gerne sage: Never change a running System! Aber wenn man einmal ein Backup vom Kompletten Server zieht, dann geht das schon.

SOOO....
Ich bin ja auch nicht ganz untätig und versuche ja weiterhin mein Glück. MIr hat die 2 Dateien Methode sehr gut gefallen und hat sich relativ Simpel angehört. Also hab ich mich mal ran gemacht und weil Googel so ein guter Freund ist habe ich mir mal so ein Script gesucht. Und etwas abgeändert. Leider kommt nicht viel dabei raus.
Aber seht selbst:

Das ist meine abfragen.php:

Code:
<?
//Anfang Konfiguration der IP und Statusausgabe
$offline="Server Offline";
§online="Server Online";
$ziel="";
$port="";
//Ende Konfiguration 1
//Port angeben z.B. 30001 - Apache:80 FTP:21
$abfrage = fsockopen ($ziel, $port, $errno);
if (!$abfrage == false) {
echo $offline;
}
else {
//Statusausgabe wenn Serverport erreichbar
echo $online
echo "<img src="img/icons/success.gif?".rand(1,8)."" width="16" height="16">";
}
?>


Und wenn ich dann versuche die Datei am Server aufzurufen...
Also sprich:

Code:
domain.de/abfragen.php$ziel=WERT&$port=80

kommt nichts. Auch wenn ich die $ Dollar Zeichen weg lassen passiert nichts außer:

http://choppercrasher.de/wp-content/uploads/2017/01/Unbenannt.PNG(!https)


RE: Wordpress --> Gaming Server bzw. Online Stauts abfragen - Jerr0w - 19.01.2017 13:00

Code:
<?php

$service = fsockopen("127.0.0.1" /*IP-Adresse*/, "10011" /*Port*/);

if ($service) {
  echo ("Server is online");
  $close = fclose($service);
}
else
  echo ("Server is offline");

?>


Der Code sollte dir als Abfrage reichen.


RE: Wordpress --> Gaming Server bzw. Online Stauts abfragen - italian-power - 19.01.2017 13:09

Bin mir nicht sicher aber "fsockopen" ist oft in der PHP.ini blacklisted, einfach mal reinschauen falls es nicht gehen sollte. Bevor du jetzt Stundenlang nach fehlern suchst ^^


RE: Wordpress --> Gaming Server bzw. Online Stauts abfragen - Jerr0w - 19.01.2017 13:19

italian-power schrieb:
Bin mir nicht sicher aber "fsockopen" ist oft in der PHP.ini blacklisted, einfach mal reinschauen falls es nicht gehen sollte. Bevor du jetzt Stundenlang nach fehlern suchst ^^


Ist eig. nie blacklisted. Funktioniert bei mir problemlos ohne irgendwas an der php.ini geändert zu haben.


RE: Wordpress --> Gaming Server bzw. Online Stauts abfragen - SlayMaSTer - 19.01.2017 13:48

Also in der php.ini muss ganz sicher nichts geändert werden. Soweit kenne ich mich aus.

Aber danke für dein Script ich war zwar knapp daneben aber dennoch Fast dran. Ich habe es nochmal etwas überarbeitet.

Nun sieht der Plan so aus:

Ich erstelle in Wordpress eine Seite Server = erledigt.
Gehe nun in den HTML Editor von der jeweiligen Seite und füge dort ein:

Code:
<a href="http://choppercrasher.de/abfragen.php?ip=127.0.0.1&port=10011"></a>


Dieser Tag übergibt nun ip und port an das php Dokument.

Dieses sieht nun so aus:

Code:
<?php

$service = fsockopen($_GET["ip"]/*"example=127.0.0.1"*/ /*IP-Adresse*/, $_GET["port"] /*"example=10011"*/ /*Port*/);

if ($service) {
  echo ("Server is online");
  $close = fclose($service);
}
else
  echo ("Server is offline");

?>


Es sollte erscheinen "Server ist Online" Wenn ich das direkt im Browser mache funktioniert das auch. Nun teste ich es noch in Wordpress ob er mir das so zurück gibt oder nicht.

Was haltet Ihr davon? Man könnte in HTML also sprich in Wordpress dann natürlich noch einige CSS Parameter dazugeben damit es nach etwas aussieht. So ist der Plan.

EDIT: Habe es gerade in Wordpress versucht. Leider schreibt er mir das Ergebniss aus der php Datei nicht in HTML rein. Vermutlich weil die passende übergabe nicht funktioniert.


RE: Wordpress --> Gaming Server bzw. Online Stauts abfragen - Jerr0w - 19.01.2017 13:53

Du könntest in HTML auch mit iframe arbeiten, zur absoluten Not. Wink Nur so als Tipp am Rande.


RE: Wordpress --> Gaming Server bzw. Online Stauts abfragen - SlayMaSTer - 19.01.2017 13:57

Ja das könnte ich. Ich stelle mir jetzt nur die Frage ob es funktioniert ohne einer Datenbank das Ergebnis aus der Abfrage.php wieder zurück in mein Wordpress zu geben. Hierbei scheitert es gerade...


RE: Wordpress --> Gaming Server bzw. Online Stauts abfragen - italian-power - 19.01.2017 14:32

Bitte tue mir ein gefallen und benutze nicht den obigen Code.

"<a href="http://----.--/abfragen.php?ip=127.0.0.1&port=10011"></a>"

Ist so dirty - dein Server kann hier für Portscans usw. ganz einfach genutzt werden (nicht sehr sauber und sehr gefährlich !) Hetzner sieht das garnicht gerne Wink

Baue einfach folgenden Check ein:

Oder Falls du sowieso nur bestimmte Server prüfen willst, dann hau dir die in die Datenbank und such nach der ID, mit der ID kannst du dann IP und Port prüfen.

PHP-Code:
<?php
//IP Whitelist

$ips=array('123.456.78.9' '123.456.7.9' );
//Ist IP in Whitelist ?
$whitelist=false;
foreach (
$ips as $ip)
    {
        if (
$ip ==$_GET["ip"])
             
$whitelist true
    }
//Port ist eigentlich egal, ist ja dein Server - Sollte man aber auch über eine Whitelist nachdenken.
//Prüfen der Ports
$ports = array ('HTTP' => 80'FTP' => 21"ARMA3" => 2302"TSQuery" => 10011);
if (
$whitelist)
    {
    
$whitelist=false;
    foreach (
$ports as $typ => $ip)
        {
        
//Port in Whitelist
        
if ($ports ==$_GET["port"])
            { 
            
$whitelist true;
            
$service=$typ
            }
        }
    }
if (
$whitelist)
{
echo 
"Ein ".$service." Dienst wird überprüft ...";

$service fsockopen($_GET["ip"], $_GET["port"]);

... 
rest des codes





RE: Wordpress --> Gaming Server bzw. Online Stauts abfragen - SlayMaSTer - 19.01.2017 15:05

italian-power schrieb:
Bitte tue mir ein gefallen und benutze nicht den obigen Code.

"<a href="http://----.--/abfragen.php?ip=127.0.0.1&port=10011"></a>"

Ist so dirty - dein Server kann hier für Portscans usw. ganz einfach genutzt werden (nicht sehr sauber und sehr gefährlich !) Hetzner sieht das garnicht gerne Wink

Baue einfach folgenden Check ein:

Oder Falls du sowieso nur bestimmte Server prüfen willst, dann hau dir die in die Datenbank und such nach der ID, mit der ID kannst du dann IP und Port prüfen.

PHP-Code:
<?php
//IP Whitelist

$ips=array('123.456.78.9' '123.456.7.9' );
//Ist IP in Whitelist ?
$whitelist=false;
foreach (
$ips as $ip)
    {
        if (
$ip ==$_GET["ip"])
             
$whitelist true
    }
//Port ist eigentlich egal, ist ja dein Server - Sollte man aber auch über eine Whitelist nachdenken.
//Prüfen der Ports
$ports = array ('HTTP' => 80'FTP' => 21"ARMA3" => 2302"TSQuery" => 10011);
if (
$whitelist)
    {
    
$whitelist=false;
    foreach (
$ports as $typ => $ip)
        {
        
//Port in Whitelist
        
if ($ports ==$_GET["port"])
            { 
            
$whitelist true;
            
$service=$typ
            }
        }
    }
if (
$whitelist)
{
echo 
"Ein ".$service." Dienst wird überprüft ...";

$service fsockopen($_GET["ip"], $_GET["port"]);

... 
rest des codes




Okay ja das hört sich etwas logischer an. Also um die Datenbank komm ich nicht drum rum. Aber wo ist der Datenbank aufruf? Ich meine ich muss mich ja erstmal mit der Datenbank connecten damit er überhaupt erstmal irgend eine id abfragen kann. Vorallen wie soll die Datenbank am besten aussehen? Wie gesagt Datenbank bis auf das Aussehen ist mir alles bekannt nur in PHP bin ich ne 0 aber ich halte mich immer mehr an learning by doing. Google ist mein Freund ist mir klar nur wenn mann sich immer alles raus suchen muss, dann hat man vom suchen irgendwann so das Kotzen, das man einfach sagt: Ach komm schon.
Jeder war schonmal in so einer Lage das einfach alles nur noch Bahnhof ist.

Gut zurück zum Thema irgendwo muss da ja noch der Aufruf der Datenbank rein.


RE: Wordpress --> Gaming Server bzw. Online Stauts abfragen - italian-power - 19.01.2017 15:51

Also bei meinem Beispiel ist keine Datenbank.

Du kannst den Link von dir vorher nach wie vor nutzen, das Skript baut aber nicht alle verbindungen zu jedem Server auf - das ist wichtig - Sofern du die Whitelist nutzt.

Datenbank könnte so aussehen:

Tabelle mit IPs

DBid - ServerIP

Tabelle mit Ports:

Portnummer - ServerDBid

Dann holst du dir die daten aus der datenbank und verarbeitest die, wenn du nicht weißt wie, dann erstell dir ein Array.

Ob sich eine Datenbak bei 5 Server/Ports lohnt bezweifle ich aber stark.

Beispiel mit einem Array:

PHP-Code:
$server = array( 
"Servername1" => "ServerIP"
"Servername2" => "ServerIP",
 
"Servername3" => "ServerIP"
);

//Ports befüllen

$server["Servername1"]["Ports"] = array ('HTTP' => 80'FTP' => 21"ARMA3" => 2302"TSQuery" => 10011);

$server["Servername2"]["Ports"] = array ('HTTP' => 80'FTP' => 21"ARMA3" => 2302"TSQuery" => 10011);

$server["Servername3"]["Ports"] = array ('HTTP' => 80'FTP' => 21"ARMA3" => 2302"TSQuery" => 10011);

foreach (
$server as $servername => $data)
{
echo 
$servername;
print_r($data);


Versuch das mal.