Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 24-05-2017, 22:11
Iv0ry
 Registrierter Benutzer
Links : Onlinestatus : Iv0ry ist offline
Registriert seit: Jun 2010
Beiträge: 5
Iv0ry befindet sich auf einem aufstrebenden Ast
Standard PHP redirect wenn Server down (lokal/Heimnetz)

Hi Leute,

wir haben eine private Domain (Hauptnutzung E-Mail) und einem kleinen Blog (bei Strato falls relevant). Dort liegt ebenfalls ein Link (soll dann check.php sein) zu unserem "Intranet" (Einer Website auf einem lokalen Webserver im Heimnetz (RasPi) mit lokalen Links und Adressen. Da der kleine Raspi nicht immer läuft, läuft die Intranetseite ebenfalls auf meinem Home-NAS (Webserver). Was ich nun möchte ist, wenn ich auf der Interentseite auf den Link zum Intranet klicke, entweder, wenn Online der RasPi antwortet oder (backup) das NAS. Also im Prinzip ein Check ob lokaler Server (Rapsi) im Heimnetz online, wenn ja Seite anzeigen andernfalls auf NAS weiterleiten (beides immer Port 80 im Heimnetz).

Raspi: 192.168.1.1
NAS: 192.168.1.2

Ich hatte dazu folgende Scripts gefunden, aber leider scheint keins zu funktionieren, habt Ihr eine Idee?


Die robots.txt existiert auf beiden Servern.

1)
Code:
<?php
//$srv1= "192.168.1.1";
$srv1 = "www.seitegibtesnicht.de/"; // zum testen
$srv2 = "192.168.1.2"; 
$check = @fsockopen($srv1, 80);
if ($check) {
@fclose($check);
header("Location: http://$srv1");
exit;
}else{
header("Location: http://$srv2");
}
?>
2)
Code:
<?php
if (require("http://192.168.1.1/robots.txt")) {
  header ('Location: http://192.168.1.1/');
}
elseif (require("http://192.168.1.2/robots.txt")) {
  header ('Location: http://192.168.1.2/');
}
else {
  echo '
   // Fehlermeldung 
 ';
}
?>
3)
Code:
<?php
$check_url = "http://192.168.1.1/robots.txt"; // URL zum überprüfen
$connection = @fsockopen ($check_url, 80);
 
if (!$connection)
{
header( "refresh:5;url=http://192.168.1.2" );
echo 'Sie werden weitergeleitet, wenn nicht klicken Sie dazu <a href="http://192.168.1.2"> hier<aa ';
}
else
{
header( "refresh:5;url=http://192.168.1.1" );
echo 'Seite ist wieder erreichbar....';
exit();
}
?>
4)
Code:
<? 
$webhoster = "http://192.168.1.1/"; 
$heimrechner = "http://192.168.1.196/"; 
$testfile = "robots.txt"; 
$test=@fopen ($heimrechner.$testfile,"r"); 
if($test) { 
header("Location: $webhoster"); 
} else { 
header("Location: $heimrechner"); 
} 
?>
5)
Code:
<?
//$srv1 = "www.seitegibtesnicht.de/"; // zum testen
$srv1 = "192.168.1.1"; // zum testen
$srv2 = "192.168.1.2"; 
if($socket =@ fsockopen($srv1, 80, $errno, $errstr, 3)) { // timeout nach 3 sec
header("Location: http://$srv1");
fclose($socket);
} else {
header("Location: http://$srv2");
} ?>
:freak

Es will aber einfach nicht funktionieren, oder es wird immer stur die 192.168.1.2 geöffnet. Ich brauche wirklich Eure Hilfe zur Lösung. :-(

Gruß
Ive

Geändert von Iv0ry (24-05-2017 um 22:15 Uhr)
Mit Zitat antworten