Hallo mensen,
Ik ben bezig met het schrijven van een up-time scriptje voor mijn servers.
Echter duurt het uitvoeren van zoon scriptje heel lang als een server down is.
Ik maak gebruik van een fopen, en het is de bedoeling dat daar een timeout in komt van 2 sec.
Als er na 2 sec geen response is dan geeft hij aan dat de server down is.
Nu heb ik allerlei voorbeelden geprobeerd maar niks helpt.
Het duurt ruim 10 sec per server die down is om het script uit te voeren.
Script dat ik nu gebruik:
Heeft iemand tips?PHP Code:
<?php
$file = fsockopen ('server die down is', 80, $errno, $errstr, 2);
if (!$file){
$status = 0;
} else {
$status = 1;
}
fclose($file);
echo $status;
?>
default_socket_timeout in php.ini aanpassen heeft in elk geval geen zin.
Safe mode staat uit.
Alvast bedankt,
Guido
- Fopen timeout
-
15-07-2010, 16:04 #1
- Berichten
- 211
- Lid sinds
- 15 Jaar
Fopen timeout
-
In de schijnwerper
-
15-07-2010, 16:16 #2gast19806 Guest
De laatste parameter staat gewoon voor time out. In jouw voorbeeld is dat dus 2 seconden.
-
15-07-2010, 16:23 #3
- Berichten
- 211
- Lid sinds
- 15 Jaar
-
15-07-2010, 16:34 #4
- Berichten
- 289
- Lid sinds
- 16 Jaar
I.p.v. fopen(); kan je ook de exec(); functie gebruiken met een ping cmd.
-
15-07-2010, 17:03 #5
- Berichten
- 211
- Lid sinds
- 15 Jaar
Ja dat weet ik maar dat wil ik dus niet omdat er ook servers zijn waar wel content op staat maar die niet te pingen zijn...
Aanvullend bericht:
Probleem is opgelost!
Ik probeerde een domein te pingen waar nog geen ip achter zat (geen dns).
Hierdoor duurde het zo lang..
Ik laat nu eerst checken of er een valid ip achter zit en dan pas laat ik hem checken..
EDIT: Nu moet ik dus timeout vinden voor gethostbyname();
Iemand een idee?Laatst aangepast door Guido Veenstra : 15-07-2010 om 17:35 Reden: Automatisch samengevoegd.
-
15-07-2010, 17:47 #6
- Berichten
- 1.499
- Lid sinds
- 17 Jaar
-
15-07-2010, 17:54 #7
- Berichten
- 750
- Lid sinds
- 15 Jaar
Gebruik je het tcp of udp protocol?
EDIT: zag al dat je een post had aangepast
Aanvullend bericht:
Je hebt niet zo veel aan die functie aangezien hij altijd een string terug geeft
http://php.net/manual/en/function.gethostbyname.php
Returns the IPv4 address or a string containing the unmodified hostname on failure.Laatst aangepast door Raymond Nijland : 15-07-2010 om 18:08 Reden: Automatisch samengevoegd.
-
15-07-2010, 19:25 #8
- Berichten
- 211
- Lid sinds
- 15 Jaar
Doe nu een nslookup i.p.v. gethostbyname();
Dat doe ik met een shell_exec uiteraard!
PHP Code:<?php
$nslookup = shell_exec('nslookup -timeout=1 domein.nl');
echo $nslookup;
?>
@Tom: Heb gewoon shell_exec aangezien het m'n eigen server is.:-)
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic