Sponsor-Board.de

Normale Version: Wordpress --> Gaming Server bzw. Online Stauts abfragen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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 ^^

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.

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.

Du könntest in HTML auch mit iframe arbeiten, zur absoluten Not. Wink Nur so als Tipp am Rande.
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...
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


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.

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.

Seiten: 1 2
Referenz-URLs