Verbindungstest mit fsockopen()

milkboy

Aktives Mitglied
Hallo PHP-Freunde

Ich bin zur zet wiedereinmal am PHP "basteln" und versuche mit einem Script (netstatus.php)
alle verbindung (das heisst, die der Hardware: Router, Switch usw) anzeigen zu lassen: Online - Offline.

Ich habe dazu folgendes Script geschrieben.
CODE <?php

$fw = @fsockopen("192.168.0.1", 80, $errno, $errstr, 30);
if($fw == 1)
{
echo "FireWall: Online<br>";
}
else
{
echo "FireWall: Offline<br>";
}
fclose($fw);

$wlan = @fsockopen("192.168.0.2", 80, $errno, $errstr, 30);
if($wlan == 1)
{
echo "AccessPoint: Online<br>";
}
else
{
echo "AccessPoint: Offline<br>";
}
fclose($wlan);

$voip = @fsockopen("192.168.0.3", 80, $errno, $errstr, 30);
if($voip == 1)
{
echo "VoIP: Online<br>";
}
else
{
echo "VoIP: Offline<br>";
}
fclose($voip);

$server = @fsockopen("192.168.0.11", 80, $errno, $errstr, 30);
if($server == 1)
{
echo "Server: Online<br>";
}
else
{
echo "Server: Offline<br>";
}
fclose($server);

?>


Das Script gib auch soweit keine Fehler aus. Aber es zeigt nicht die Wahrheit. Auch wenn die Verbindungen bestehend sind, entspricht die Ausgabe nicht dem IST.


QUOTE FireWall: Online
AccessPoint: Offline
VoIP: Offline
Server: Offline


Kann mir jemand sagen, wo das hier der Fehler liegt?
 
Hallo,

Ich denke das Problem von deinem Script ist, dass du immer probierst eine Verbindung auf Port 80 des Zielservers aufzubauen!

Da musst du fsockopen ändern! Der 2. Parameter den du übergibst ist der Port (du übergibst immer 80!)

Hoffe konnte dir helfen!

Gruss
Adrian
 
Daran Liegt es nicht. Die ganze Hardware die ich "Connecten" will wird via Port 80 gesteuert. aber danke für den Hinweis.
 
Hallo

Ich würde mal mit der Logik des Samples aus der Doku probieren:
CODE <?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
//FIXME: serverdienst offline

} else {
//FIXME: serverdienst online

fclose($fp);
}
?>


Gruss
Roger
 
Zurück
Oben