Archief - PHP: server online (ping?)

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

blackrabbit

Legacy Member
Hello,

kwil een klein scriptje schrijven dat weergeeft welke servers al dan niet online zijn...

Kheb op php.net gezocht naar "ping", maar kdenk niet dat dat hetgeen is wat ik zoek..

Met welke functie/op welke manier kan ik testen of er gereageerd wordt op een bepaald IP? (en eventueel ook hoe snel dit gebeurd)

MOD: fsopen?

killgore

Legacy Member
Try fopen

edit, bv:
PHP:
<?php
if(!@fopen("http://games.telenet.be","r"))
{
	echo 'Telenet games is down';
}
else
{
	echo 'telenet games is up';
}
?>
Iemand had hier eens een of andere file functie gepost die makkelijker werkte voor dit, maar weet niet meer welke dit was ;).
edit2: @ voor fopen vergeten ;).

servi

Legacy Member
ge kunt altijd dit eens proberen :

PHP:
<?php
system('ping -c 2 '.$ipadres,$resultaat);
$positie = strpos($resultaat,'ms');
if ( $positie === false ) 
 echo 'server is offline';
else
 echo 'server is online, pingresultaat :'.substr($resultaat,$positie-3,5);
?>


of je server system calls plezant gaat vinden is natuurlijk een andere zaak :)

blackrabbit

Legacy Member
servi zei:
ge kunt altijd dit eens proberen :
of je server system calls plezant gaat vinden is natuurlijk een andere zaak :)
Hij zal wel moeten :D

bedankt!

blackrabbit

Legacy Member
Is het mogelijk om de output van system() niet weer te geven?

blackrabbit

Legacy Member
blackrabbit zei:
Is het mogelijk om de output van system() niet weer te geven?
;)

MOD: voor alle duidelijkheid:
system() geeft automatisch output weer..

Uw scriptje geeft:
PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data. 64 bytes from 192.168.0.2: icmp_seq=1 ttl=64 time=0.061 ms 64 bytes from 192.168.0.2: icmp_seq=2 ttl=64 time=0.040 ms 64 bytes from 192.168.0.2: icmp_seq=3 ttl=64 time=0.030 ms --- 192.168.0.2 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2015ms rtt min/avg/max/mdev = 0.030/0.043/0.061/0.015 ms
weer, zonder dat er ergens een "echo" staat..

blackrabbit

Legacy Member
Ik begrijp niet goed waarom system wél iets weergeeft, vermits ik een 2de var meegeef in de argumenten..

blackrabbit

Legacy Member
mja, daar had ik ook aan gedacht maar als je dan een aantal servers checked zit je met een heleboel html die vrij nutteloos is..

exec doet hetzelfde als system maar geef geen output, dus das toch wel de betere keuze

Toch bedankt

killgore

Legacy Member
sneax zei:
vóór de functie system() dit zetten:
echo '<!--';
en nadien
echo '-->';

dan is volgende toch iets beter imho (hoewel exec nog beter is ffcourse ;)):
ob_start();
system(...);
ob_end_clean();
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan