[PHP] Bepalen server online anders backup server

Pagina: 1
Acties:
  • 108 views sinds 30-01-2008

  • itsme
  • Registratie: Februari 2000
  • Niet online
Ik heb thuis een eigen server staan die als het goed is 24 uur per dag aan staat, maar nou wil het wel eens gebeuren dat die er even uit ligt. Ik wil dat als die eruit ligt graag een internet pagina bij mij ISP laten zien.

Ik heb er even over na gedacht en mij lijkt het het eenvoudigst om mijn domeinnaam te laten forwarden naar mijn xs4all webspace, waar dan een php script wordt opgestart dat het volgende moet doen:

Check of de server aanstaat (controleer of een bestand bestaat dus)

Als het bestaat ga naar http://mijnserver/index.php

als niet ga naar index2.php

Over het systeem heb ik dus al nagedacht, dit lijkt mij de eenvoudigste en beste manier (andere ideeen zijn welkom)

Maar hoe doe ik dit nu in php :?
Wie kan mij hiermee helpen, ik heb enige ervaring met php maar dan vooral met een database op mn eigen server, maar hoe ik zou moeten controleren of een bestand bestaat is mij een raadsel.

Zoiets ofzo?

index.php
PHP:
1
2
3
4
5
6
<?
if exists http://0.0.0.0/online.txt
{goto http://0.0.0.0/index.php} else
{goto /index2.php}
}
?>

"If God wanted us to have unlimited free energy He would have put a giant fusion reactor in the sky"


  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 11-04 17:07
php => [forum=14]

maar het zou dus ongeveer zoiets kunnen zijn:
PHP:
1
2
3
4
5
6
7
8
<?
$server = "server.nl";
$ip = gethostbyname($server);
if ($ip == $server) { $pagina = "index2.php"; }
if ($ip != $server) { $pagina = "http://$server/index.php"; }

Header("Location: $pagina");
?>

EDIT: Ik was een ; vergeten...

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


Verwijderd

Crewl. dat wil ik ook ff hebben :)

Verwijderd

moved W&G >> PW

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 16:14
Op zaterdag 01 december 2001 21:46 schreef Xtentic het volgende:
Crewl. dat wil ik ook ff hebben :)
Het script staat er al knul.

Verwijderd

Op zaterdag 01 december 2001 21:53 schreef dennisdotcom het volgende:

[..]

Het script staat er al knul.
jaja. :)

  • Thunder
  • Registratie: Maart 2000
  • Niet online
Met www.dns2go.com is het helemaal makkelijk :)

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 17:22

Kees

Serveradmin / BOFH / DoC
Op zaterdag 01 december 2001 20:57 schreef SWINX het volgende:
php => [forum=14]

maar het zou dus ongeveer zoiets kunnen zijn:
PHP:
1
2
3
4
5
6
7
8
<?
$server = "server.nl";
$ip = gethostbyname($server);
if ($ip == $server) { $pagina = "index2.php"; }
if ($ip != $server) { $pagina = "http://$server/index.php"; }

Header("Location: $pagina");
?>

EDIT: Ik was een ; vergeten...
dat gaat dus niet werken vrees ik voor je :)
Je resolved een hostname, dan ga je kijken of het ip gelijk is aan de hostname.. dat gaat dus NOOIT goed...
Wat je veeel beter kunt doen is:
*untested*
PHP:
1
2
3
4
5
<?
$fp = @fopen("http://ip.van.je.server/bestand", "r");
if ($fp) header("location: http://ip.van.je.server/index.html");
else header("location: http://xs4all.nl/~naam/error.html");
?>

fopen gaat denk ik niet helemaal lekker (timeouts enzo) dus hier moet je eigenlijk een functie met een timeout erop hebben :)

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 11-04 17:07
Op zaterdag 01 december 2001 23:47 schreef Kees het volgende:

dat gaat dus niet werken vrees ik voor je :)
Je resolved een hostname, dan ga je kijken of het ip gelijk is aan de hostname.. dat gaat dus NOOIT goed...

[..]
Als de hostname gelijk is aan het IP is de server down, dus geeftie de hostname terug als IP

• als IP gelijk is aan HOST opent ie dus index2.php (op de backup server)
• als IP niet gelijk is aan HOST (dan is de server dus wel online) dan gaat ie naar http://$server/index.php

Kees, ik wacht op je reactie :)

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • itsme
  • Registratie: Februari 2000
  • Niet online
Stel www.domein.nl is mijn server:
Volgens mij wordt er dan weldegelijk een IP geresolved, in de dns word nl naar mn server verwezen toch?
De server staat dan alleen uit, maar resolven doet ie !!!

Dus er wordt een IP gevonden, dus $ip is niet $server
Dus altijd wil de pc naar de server.

Maar dat is dus niet juist
Eigenlijk is www.domein.nl straks niet mijn server, maar www.xs4all.nl/~usernaam, dat kan ik in de dns instellen. server.domein.nl kan ik overigens wel mijn server laten zijn.

dus als er geresolved moet worden moet t al server.domein.nl

Maar ik denk dat dit dus niet gaat werken (untested, ik moet dan nl mijn dns veranderen, en ik wil eerst ff na hebben gedacht over de oplossingen voordat ik alles overhoop haal.

Momenteel heb ik wel opgegeven dat xs4all.domein.nl naar de xs4all webspace verwijst, dus ik kan wel een en ander testen :).

"If God wanted us to have unlimited free energy He would have put a giant fusion reactor in the sky"


  • itsme
  • Registratie: Februari 2000
  • Niet online
Op zaterdag 01 december 2001 23:44 schreef Thunder het volgende:
Met www.dns2go.com is het helemaal makkelijk :)
Dan ben ik weer meer afhankelijk van andere diensten, daarnaast vindt ik t wel leuk om over dit soort dingen na te denken, een beetje uitdaging op zn tijd is wel leuk.

[quote]
2e stukje quote:
PHP:
1
2
3
4
5
<?
$fp = @fopen("http://ip.van.je.server/bestand", "r");
if ($fp) header("location: http://ip.van.je.server/index.html");
else header("location: http://xs4all.nl/~naam/error.html");
?>

Jij opent dus een bestand, maar als de server uit staat vindt ie dat bestand dus niet, en dus gaat ie naar index2.php.

Dat zou moeten werken, maar is er niet al standaard een timeout? Dit is wel in de richting die ik ook zou zoeken nl.

"If God wanted us to have unlimited free energy He would have put a giant fusion reactor in the sky"


  • DizzyWeb
  • Registratie: Februari 2001
  • Laatst online: 22:11

DizzyWeb

Ondertiteld

Als een server offline is denk je dat je IP nie kan resolven? Da staat gewoon in de DSN, of een server nou up is of niet... En dus zal ie altijd proberen bestand op de server te openen...

Met fopen() werkt overigens wel... Timeout zit er ook op, standaard, dus als fopen() te lang duurt, stopt ie um, en is $fd false...

  • itsme
  • Registratie: Februari 2000
  • Niet online
Op zondag 02 december 2001 02:14 schreef DizzyWeb het volgende:
Als een server offline is denk je dat je IP nie kan resolven? Da staat gewoon in de DSN, of een server nou up is of niet... En dus zal ie altijd proberen bestand op de server te openen...
precies
Met fopen() werkt overigens wel... Timeout zit er ook op, standaard, dus als fopen() te lang duurt, stopt ie um, en is $fd false...
Ik kreeg t zo net niet aan de praat, maar een paar biertjes en de tijd zitten een beetje dwars :) Ik kijk er morgen weer naar :)

Slaap ze !!!

"If God wanted us to have unlimited free energy He would have put a giant fusion reactor in the sky"


  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 11-04 17:07
Op zondag 02 december 2001 02:14 schreef DizzyWeb het volgende:
Als een server offline is denk je dat je IP nie kan resolven? Da staat gewoon in de DSN, of een server nou up is of niet... En dus zal ie altijd proberen bestand op de server te openen...
volgens mij heb je gelijk :'(
bij deze sorry ;)
Met fopen() werkt overigens wel... Timeout zit er ook op, standaard, dus als fopen() te lang duurt, stopt ie um, en is $fd false...
probeer de kees-manier maar :Y)

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


Verwijderd

WAT nou als die van xs4all down is dan? lijkt me niet echt nuttig op die manier?

  • Leon
  • Registratie: Maart 2000
  • Laatst online: 10-04 09:12

Leon

Rise Of The Robots

1 vraagje:
Heeft XS4All wel PHP op zijn memberpages :?

Eeuwige n00b


Verwijderd

Volgens mij niet :? hoezo :)

  • itsme
  • Registratie: Februari 2000
  • Niet online
Op zondag 02 december 2001 13:52 schreef fazer het volgende:
1 vraagje:
Heeft XS4All wel PHP op zijn memberpages :?
Volgens mij idd niet, als ik m als .php op sla doet ie t helemaal niet (zie gewoon de source) als .phtml of .php3 ben ik niet gemachtigd :( ik vrees dus dat t niet gaat werken, maar t script zit in ieder geval goed in elkaar :)

Weet iemand waar ik gratis STABIELE webspace kan krijgen met PHP ondersteuning?

"If God wanted us to have unlimited free energy He would have put a giant fusion reactor in the sky"


  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 11-04 17:07
Op zondag 02 december 2001 23:11 schreef bas_konings het volgende:

[..]

Weet iemand waar ik gratis STABIELE webspace kan krijgen met PHP ondersteuning?
laat maar...

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • sQuarecoW
  • Registratie: Juli 2003
  • Laatst online: 21:31
ik ben een aardige php/asp n00b, dus wellicht is dit een hele domme vraag..

gaat dit ook werken met asp?? Of moet de code dan een beetje omgebouwd worden???

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 23:51
Volgens mij kan wat jij wil ook gewoon met javascript (who needs PHP :Y) move => w&g ;) )

Op je XS4ALL space zet je een index met de volgende inhoud:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<html enzo>
<script type="text/javascript">
 var thuisavailable = false;
</script>

<script type="text/javascript" src="thuis.nl/available.js">

<script type="text/javascript">
 if (thuisavailable) 
    { 
      document.location = "thuis.nl"; 
    } else {
      document.location = "xs4all/me";
    }
</script>

Je kunt dan wel raden wat er op thuis.nl in available.js staat:
code:
1
thuisavailable = true;

[ Voor 48% gewijzigd door T-MOB op 11-12-2004 03:05 ]

Regeren is vooruitschuiven


  • plakbandrol
  • Registratie: Juni 2002
  • Laatst online: 12-02 12:36
Je kunt toch ook gewoon pingen via PHP (system functie), dat lijkt me het effectiefst..

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:44

Creepy

Tactical Espionage Splatterer

jwoskam schreef op zaterdag 11 december 2004 @ 01:15:
ik ben een aardige php/asp n00b, dus wellicht is dit een hele domme vraag..

gaat dit ook werken met asp?? Of moet de code dan een beetje omgebouwd worden???
En daarvoor trap je zo'n oud topic omhoog? :)

Als je denkt dat je vraag een eigen topic waard is, open dan maar een nieuwe topic. Vergeet daarbij P&W FAQ - De "quickstart" niet ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.