Avatar billede qualon1 Nybegynder
02. oktober 2004 - 20:51 Der er 10 kommentarer og
1 løsning

pinge en server

Hej...
Nogen der ved hvordan man får php til at pinge en server? Altså checke om serveren er online. Og så evt. udskrive ping tiden...
Avatar billede riversen Nybegynder
02. oktober 2004 - 20:55 #1
prøv at kigge lidt på passthru, exec og system funktionerne
Avatar billede hmortensen Nybegynder
02. oktober 2004 - 22:30 #2
Hvilket OS kører serveren på ?

Mener ikke det kan lade sig gøre, hvis serveren er i safe_mode.

Skal serveren pinges, eller skal der tjekkes om en specifik service kører, som fx ftp ?
Avatar billede -xyz- Nybegynder
02. oktober 2004 - 23:04 #3
Der skal du kigge på fsockopen... eks:

$conn = @fsockopen("xyz3d.dk",80, $errorno, $error, 30)
if ($conn == true)
{
  echo "Serveren er oppe";
  fclose($conn);

}
else
{
  echo "serveren er nede";
  @fclose($conn);
}
Avatar billede hmortensen Nybegynder
02. oktober 2004 - 23:05 #4
-xyz-, ligner nu ikke helt et ping...
Avatar billede -xyz- Nybegynder
02. oktober 2004 - 23:40 #5
Nej, men den tjekker om serveren er online
Avatar billede hmortensen Nybegynder
02. oktober 2004 - 23:42 #6
Nej, den tjekker om den får svar fra en service på port 80.

Jeg kan godt pinge min bærbare, men den svarer ikke på port 80, men den er da online.
Avatar billede -xyz- Nybegynder
03. oktober 2004 - 16:07 #7
Ja, men definitionen på en server er et stykke software typisk en webserver eller en spil server, ikke hardwaren som mange fejlagtigt tror...
og det kan jo også godt lade sig gøre at skifte port i scriptet...
Så den tjekker om serveren er oppe ikke om maskinen er på nettet... som der blev bedt om...
Avatar billede -xyz- Nybegynder
03. oktober 2004 - 16:08 #8
Og undskyld det er stadig ikke et ping. men jeg ville mene at den udfører opgaven
Avatar billede -xyz- Nybegynder
03. oktober 2004 - 16:17 #9
Der skal du kigge på fsockopen... eks:

$ptime1 = time();
$conn = @fsockopen("xyz3d.dk",80, $errorno, $error, 30)
if ($conn == true)
{
  $ptime2 = time();
  echo "Serveren er oppe";
  $ptime = $ptime2 - $ptime1;
  echo "Sekunder til server: $ptime";
  fclose($conn);

}
else
{
  echo "serveren er nede";
  @fclose($conn);
}

Nu burde den tjekke tiden den er om at kommunikere med serveren
Avatar billede -xyz- Nybegynder
04. oktober 2004 - 09:37 #10
Sorry du kan selvfølgelig ikke bruge sekunder til noget som helst hvis det er en spilserver, så jeg har lige rettet det til med microsekunder i stedet det er testet...
Se test på http://www.xyz3d.dk/ping.php

<?
$ptime1 = microtime();
$conn = @fsockopen("dr.dk",80, $errorno, $error, 30);
if ($conn == true)
{
  $ptime2 = microtime();
  echo "Serveren er oppe<br>";
  $ptime = $ptime2 - $ptime1;
  echo "Sekunder til server: $ptime";
  fclose($conn);

}
else
{
  echo "serveren er nede";
  @fclose($conn);
}
?>
Avatar billede riversen Nybegynder
04. oktober 2004 - 21:13 #11
qualon1 må vel afgøre om det udfører opgaven. Ud fra det han skriver gør det IKKE, men er han tilfreds, har han fejlformuleret spørgsmål.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester