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]">
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>
Das Modul checkt also via "fsockopen" die Ports für FTP, HTTP, etc. und gibt dementsprechend grünes oder rotes Licht... 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?!