PHP redirect wenn Server down (lokal/Heimnetz)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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
    Zuletzt geändert von Iv0ry; 24.05.2017, 21:15.

  • #2
    Banada hat dazu beigetragen, diese Quelle effektiv und sauber zu machen.

    Kommentar


    • #3
      Zitat von Iv0ry Beitrag anzeigen
      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
      Ihre Strategie gefällt mir besonders gut. Einige Methoden können jedoch entwickelt werden. Wir müssen einen anderen Weg versuchen. Bei Interesse können Sie ab 192.168.1.1 verschiedene Methoden erlernen.

      Kommentar


      • #4
        Das Thema hilft mir sehr, ich habe das gleiche Problem.
        192.168.1.1

        Kommentar


        • #5
          Zitat von walkerr Beitrag anzeigen
          Ihre Strategie gefällt mir besonders gut. Einige Methoden können jedoch entwickelt werden. Wir müssen einen anderen Weg versuchen. Bei Interesse können Sie ab 192.168.1.1 oder 192.168.0.1 oder 10.0.0.1 verschiedene Methoden erlernen.
          Vielen Dank für Ihre Informationen

          Kommentar


          • #6
            Vielen dank für die nützlichen informationen, ich habe alle einstellungen des routers hier gefunden
            router login

            Kommentar

            Lädt...
            X