Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 01:05

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Php - Mehrere Ports prüfen

Discussion on Php - Mehrere Ports prüfen within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1

 
elite*gold: 74
Join Date: Jun 2012
Posts: 608
Received Thanks: 360
Php - Mehrere Ports prüfen

Serv .. ich möchte gerne den Status meines Gameserver abfragen, dieser läuft über mehrere Dienste mit verschiedenen Ports. Wenn nun einer dieser Dienste ausfällt soll mir ein "Offline" ausgegeben werden, laufen alle Dienste soll mir natürlich ein "Online" ausgegeben werden. Ich weiß das man einzelne Ports mit fsockopen() prüfen kann. Nun hab ich mir folgendes Script gebastelt:

Code:
<?php
	$Server  = "127.0.0.1";
	$AccountLog = "9005";
	$LoginServer = "9010";
	$Character = "9100";
	$GameLog = "9101";

	if ($Server and $AccountLog and $LoginServer and $Character and $GameLog) {
		$serverstatus =  @fsockopen("$Server", $AccountLog, $LoginServer, $Character, $GameLog);
	}
		if($serverstatus) {
			echo "<font color='#11c908'>Online</font>";
		}
		else {
			echo "<font color='#ff0000'>Offline</font>";
		}
?>
Leider funktioniert es nicht und setzt den Status Online/Offline nach $AccountLog. Kann mir da jemand helfen?
Cℓoud is offline  
Old 04/14/2014, 19:01   #2
 
3lue's Avatar
 
elite*gold: 5
The Black Market: 204/0/0
Join Date: Feb 2012
Posts: 8,552
Received Thanks: 411
Du kannst die Ports nicht reihenweise als Argumente aufführen, sondern musst jeden einzeln per fsockopen überprüfen.
3lue is offline  
Old 04/15/2014, 14:12   #3
 
5anku's Avatar
 
elite*gold: 170
Join Date: Jan 2011
Posts: 74
Received Thanks: 74
Hab vor einer weile mal eine Klasse dafür geschrieben. Ich habe sie für dich schnell angepasst (aber nicht getestet).
Ausserdem schreibe ich den Status jede Minute in ein File. Wenn man nämlich das Script bei jedem aufruf ausführt, flooded man sozusagen seine eigenen Services.

Soll heissen ich lade deine Seite immer wieder neu, und jedes mal wird ein Socket geöffnet. Beim WorldManager endet es damit, das er jedes mal einen neuen Spieler hinzufügt.

PHP Code:
<?
class fiesta_status_class {

    var 
$pathToFile "file/status/server.txt";
    var 
$serverAddress "127.0.0.1";
    var 
$serverPort = array("9005""9010""9100""9101");
    
    
    public function 
checkStatus() {
                
$status true;
        for (
$i 0$i count($this -> serverPort); $i++) {
            
$status &= $this -> getStatus($this -> serverPort[$i], $this -> serverAddress);
        }
        return 
returnOnlineStatus($status);
    }
    
    private function 
getStatus($port$ip) {
        if ( (
time() - filemtime($pathToFile)) / 60  1) {
            
$status $this -> getServiceStatus($ip$port);
            
$fileWriter fopen($pathToFile"w+");
            
fwrite($fileWriter$status);
            
fclose ($fileWriter);
        } else {
            
$fileWriter fopen($pathToFile"r");
            while(!
feof($fileWriter)) {
                
$status fgets($fileWriter);
            }
            
fclose ($fileWriter);
        }
        return 
$status;
    }
    
    private function 
getServiceStatus($ip$port) {
        
$socketAccept = @fsockopen($ip$port$errno$errstr2);
        if (
$socketAccept) {
            return 
true;
        } else { 
            return 
false;
        }
    }
    
    private function 
returnOnlineStatus($status) {
        
//$infoArray = array('<font color='#ff0000'>Offline</font>', '<font color='#11c908'>Online</font>');
        
$infoArray = array('OFFLINE''ONLINE');
        if (!
$status) {
            return 
$infoArray[0];
        } else { 
            return 
$infoArray[1];
        }
    }
}
?>
5anku is offline  
Reply


Similar Threads Similar Threads
[Batch] If exist mehrere Dateien prüfen?
05/26/2012 - General Coding - 3 Replies
Hey Leute, Ich wollte nach sehr sehr langem Kopfzerbrechen fragen wie ich es hinkriege das der If-exist Befehl z.b 3 Dateien nach ihrem Dasein überprüft? Ich verzweifle richtig und sitze schon 1 Woche daran...
Suche Hilfe Mehrere Teamspeak 3 Server über eine IP mit Ports verteilen(V-S)[B]e-gold
04/18/2012 - elite*gold Trading - 2 Replies
der wo es mir erklärt und bei den es checke bekommt e gold 40-50 e gold habe was gefunden aber kapiere es nicht ^^ Virtual Server Management server läuft über v-server
Mehrere Teamspeak 3 Server über eine IP mit Ports verteilen (HILFE)
04/17/2012 - elite*gold Trading - 0 Replies
der wo es mir erklärt und bei den es checke bekommt e gold 20-25 e gold habe was gefunden aber kapiere es nicht ^^ Virtual Server Management server läuft über v-server
DLL auf inject prüfen
05/16/2011 - AutoIt - 10 Replies
Hi, ist es irgendwie möglich, ob eine spezielle DLL in einen spezifischen Prozess injected wurde? Speziell geht es mir um den Hack http://www.elitepvpers.com/forum/wow-exploits-hacks -tools-macros/1005654-wowext-xyz-hack-mit-teleport -features.html und die dazugehörige WExt.dll.
Find out the Ports/Ports herausfinden
11/14/2007 - Lineage 2 - 1 Replies
Wie finde ich die Ports von nem Server raus???



All times are GMT +2. The time now is 01:05.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.