Hallo, lieber Forumbenutzer. Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen Möglichkeiten der Kommunikation ist das Forum ein wenig eingeschlafen und weniger Nutzer benutzen das Forum aktiv (trotzdem lohnt es sich evtl. hier nach Lösungen zu suchen oder seine Frage zu stellen).

Wir empfehlen, für deine Fragen/Probleme aktuell (zusätzlich) Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: http://redaxo.org/slack/
Benutzeravatar
karlnappmitdenasskap
Beiträge: 116
Registriert: 18. Aug 2012, 20:30
Kontaktdaten: Website

FTP Server-Status abfragen

12. Feb 2014, 14:38

Hallo,

ich habe mir ein Modul zusammengebastelt, welches die Verfügbarkeit der Services eines Servers abfragt u. anzeigt.
Das Modul sieht so aus:

Eingabe:

Code: Alles auswählen

<b>Server:</b><br />
<input type=text size=80 name=VALUE[1] value="REX_VALUE[1]"><br />
<b>Position der Status-Tabelle:</b><br />
<i>(left, right od. center)</i><br />
<input type=text size=80 name=VALUE[2] value="REX_VALUE[2]">
Ausgabe:

Code: Alles auswählen

<link href="/files/status/status-tabelle.css" type="text/css" media="screen" rel="stylesheet" />

<?php
function check_port($port) {
    $conn = @fsockopen("REX_VALUE[1]", $port, $errno, $errstr, 5);
    if ($conn) {
        fclose($conn);
        return true;
    }
}

function server_report() {
    $report = array();
    $svcs = array('21'=>'FTP',
                  '22'=>'SSH',
                  '25'=>'SMTP',
                  '80'=>'HTTP',
                  '110'=>'POP3',
                  '143'=>'IMAP',
                  '3306'=>'MySQL');
    foreach ($svcs as $port=>$service) {
        $report[$service] = check_port($port);
    }
    return $report;
}

$report = server_report();
?>

<div id="status-tabelle" align="REX_VALUE[2]">
<b>REX_VALUE[1]</b>
<table>
    <tr>
        <td>Service</td>
        <td>Status</td>
    </tr>
    <tr>
        <td>FTP</td>
        <td><?php echo $report['FTP'] ? "<img src=\"files/status/gruen.png\" title=\"Online\">" : "<img src=\"files/status/rot.png\"  title=\"Offline\">"; ?></td>
    </tr>
    <tr>
        <td>SSH</td>
        <td><?php echo $report['SSH'] ? "<img src=\"files/status/gruen.png\" title=\"Online\">" : "<img src=\"files/status/rot.png\"  title=\"Offline\">"; ?></td>
    </tr>
    <tr>
        <td>SMTP</td>
        <td><?php echo $report['SMTP'] ? "<img src=\"files/status/gruen.png\" title=\"Online\">" : "<img src=\"files/status/rot.png\"  title=\"Offline\">"; ?></td>
    </tr>
    <tr>
        <td>HTTP</td>
        <td><?php echo $report['HTTP'] ? "<img src=\"files/status/gruen.png\" title=\"Online\">" : "<img src=\"files/status/rot.png\"  title=\"Offline\">"; ?></td>
    </tr>
    <tr>
        <td>POP3</td>
        <td><?php echo $report['POP3'] ? "<img src=\"files/status/gruen.png\" title=\"Online\">" : "<img src=\"files/status/rot.png\"  title=\"Offline\">"; ?></td>
    </tr>
    <tr>
        <td>IMAP</td>
        <td><?php echo $report['IMAP'] ? "<img src=\"files/status/gruen.png\" title=\"Online\">" : "<img src=\"files/status/rot.png\"  title=\"Offline\">"; ?></td>
    </tr>
    <tr>
        <td>MySQL</td>
        <td><?php echo $report['MySQL'] ? "<img src=\"files/status/gruen.png\" title=\"Online\">" : "<img src=\"files/status/rot.png\"  title=\"Offline\">"; ?></td>
    </tr>
</table>
</div>
Wer's mal runterladen will: http://greatif.cwsurf.de/files/redaxo_s ... ul_1.0.rar

Das Modul checkt also via "fsockopen" die Ports für FTP, HTTP, etc. und gibt dementsprechend grünes oder rotes Licht... :P Soweit alles Prima.

Jetzt aber zu meiner Frage:
Ich habe hier (über eine dynamische IP) einen FTP-Server (Software: CesarFTP) gestartet, dem ich über DynDNS eine feste URL zugewiesen habe. Die dynamische IP wird mittels DynDNS Updater immer akutalisiert, sodass der FTP-Server immer unter der bestimmten URL zu erreichen ist. Das funzt soweit ebenfalls bestens.
Wenn ich jetzt über das o.g. Modul die Erreichbarkeit des FTP-Servers über diese DynDNS-URL feststellen will, bekomme ich beim FTP-Port immer ausgegeben, dass dieser nicht erreichbar ist - auch wenn der Server on ist.

Hat jemand ne Idee, wie sich dieses Problem lösen lässt, d.h. wie man im o.g. Modul die Erreichbarkeit eines FTP-Servers mit dynamischer IP u. vorgeschalteter fester URL abfragen kann?!

Zurück zu „Allgemeines [R4]“