Avatar billede kwudo Nybegynder
25. februar 2007 - 13:11 Der er 8 kommentarer og
1 løsning

Tjek om Ip er oppe?

God eftermiddag alle eksperter :-)

Jeg tænkte på om det er muligt at lave et script der tjekker om en IP er oppe.
Med det mener jeg om den er tilgængelig altså om man kan komme ind på den.

Lad mig formulere lidt.
Hvis vi nu siger jeg har et sted jeg hoster websider, kan jeg så med et script af en art, automatisk teste om hjemmesiden er oppe?

hvis i ikke forstår så skriv endelig :-)

M.V.h.
Rasmus
Avatar billede Slettet bruger
25. februar 2007 - 13:15 #1
Altså på din side vel du tjekke om en anden side er oppe.
Avatar billede Slettet bruger
25. februar 2007 - 13:15 #2
Ala noget domain tjek lige som hosting firma har?
Avatar billede kwudo Nybegynder
25. februar 2007 - 13:17 #3
nej, ikke det.
Altså vil tjekke, f.x. har jeg en apache server på min computer og der vil jeg gerne have et script der kan fortælle brugerne om apache serveren er oppe eller nede.
Hvis du forstår,
Avatar billede Slettet bruger
25. februar 2007 - 13:46 #4
Altså ganske simpelt om den modtager noget data fra en bestemt ip?
Avatar billede kwudo Nybegynder
25. februar 2007 - 14:07 #5
ja præcis.
Om man kan komme ind på apache serveren udefra det det.
Avatar billede jarlskov Nybegynder
25. februar 2007 - 17:19 #6
Du vil gerne checke om din webserver er i stand til at sende den rigtige side til dine besøgende.

Du ska åbne en socket til din webserver og bede om at få den side du er interesseret i.
Se her:
http://dk.php.net/manual/en/function.fsockopen.php

Eksempel 1511 viser dig lige præcis hvordan du skal spørge efter siden www.example.com.

Du skal så bare huske at checke at det rent faktisk er din side du får tibage (og ikke f.eks. en fejlmeddelelse fra en database).
Avatar billede kwudo Nybegynder
25. februar 2007 - 17:51 #7
kan dette ikke ændres ved at gøre således:

<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
  echo "$errstr ($errno)<br />\n";
} else {
  $out = "GET / HTTP/1.1\r\n";
  $out .= "Host: www.example.com\r\n";
  $out .= "Connection: Close\r\n\r\n";

  fwrite($fp, $out);
  while (!feof("Serveren er oppe!")); {
      echo fgets($fp, 128);
  }
  fclose($fp);
}
?>
Avatar billede kwudo Nybegynder
25. februar 2007 - 17:54 #8
<?php
$fp = fsockopen("80.62.179.227", 80, $errno, $errstr, 30);
if (!$fp) {
  echo "$errstr ($errno)<br />\n";
} else {
  $out = "GET / HTTP/1.1\r\n";
  $out .= "Host: 80.62.179.227\r\n";
  $out .= "Connection: Close\r\n\r\n";

  fwrite($fp, $out);
  while (!feof($fp)) {
      echo fgets(Oppe, 128);
  }
  fclose($fp);
}
?>

ups,
Avatar billede jarlskov Nybegynder
28. februar 2007 - 09:54 #9
Nej.
Hvis det ikke giver en fejl, så vil det bare skrive OppeOppeOppeOppe i en uendelighed.
Jeg kan prøve at forklare hvad while-løkken gør:

$fp indeholder den webside (inkl. headers) som webserveren returnerede
  while (!feof($fp)) {        # Så længe $fp ikke har nået End-Of-File
      echo fgets($fp, 128);  # Tag 128 bytes fra $fp og udskriv dem.
  }  # Løkken slutter, når der er taget 128 bytes fra $fp tilstrækkeligt mange gange, til at vi er nået til End-Of-File.


Du skal erstatte denne løkke med noget der checker om det er _din_ webside, der er blevet returneret og ikke en fejlside.
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