Avatar billede angelenglen Nybegynder
19. marts 2003 - 12:55 Der er 8 kommentarer og
1 løsning

"ping" en side

Jeg har brug for en side der kan noget i stil med det her:

Når man åbner siden, skal den være opdelt i 2 frames horisontalt.

Den øverste frame (pinger_index.php fx) skal refreshe sig selv hver 30 minutter, og hver gang den refresher sig selv, skal den få den nederste frame til at skifte url til fx:
http://www.site2.dk/pinger.php?stamp=1048072877 (et timestamp)

når så den nederste frame henter pinger.php, hvis så pinger.php er oppe, skal den indeholde et script der refresher den øverste frame med en url der er noget i stil med: http://www.site1.dk/pinger_log.php?delay=5
-hvor 5 er forskellen på det timestamp den fik sendt i $stamp, og time();

når pinger_log.php så bliver hentet i den øverste frame, skal den udføre en sql kommando jeg selv kan skrive hvis det er. Den skal ihvertfald skrive følgende i en database:
time(); //så man kan se hvornår "ping'et" blev logget.
$delay //så man kan se hvor stort delay der var.


-alt det kunne jeg måske finde hjælp til i diverse spørgsmål her på eksperten... men hvad jeg tvivler på jeg finder er:

-hvis siden http://www.site2.dk/pinger.php er NEDE - så skal den vel time out efter fx 30 sekunder? - hvordan får jeg logget det? -altså at den ikke er oppe?

jeg tænkte på noget i stil med at lade pinger_index.php sende noget i stil med følgende url til nederste frame efter 30 secs - for hvis site2.dk/pinger.php var oppe, ville den jo have refreshet den øverste frame længe inden da...
url'en jeg tænkte på:
http://www.site1.dk/pinger_log.php?delay=down



jeg ved godt det er lidt forvirrende, men jeg tror jeg kan forklare det hele :)
Avatar billede angelenglen Nybegynder
19. marts 2003 - 13:30 #2
glemte forresten at nævne at det domæne jeg vil pinge er hosted af b-one.nu

Hvis man pinger dem i en command-prompt får man:
Pinger www.b-one.nu [212.97.135.51] med 32 byte data:

Svar fra 212.97.135.51: Modtagerport ikke tilgængelig.
Svar fra 212.97.135.51: Modtagerport ikke tilgængelig.
Svar fra 212.97.135.51: Modtagerport ikke tilgængelig.

Ping-statistikker for 212.97.135.51:
    Pakker: Sendt = 3, modtaget = 3, tabt = 0 (0% tab),
Beregnet tid for rundtur i millisekunder:
    Minimum = 0ms, Maksimum = 0ms, Gennemsnitlig = 0ms

Så tilsyneladende skal der andre midler i brug :(

Derudover kan jeg slet ikke få ovenstående script til at pinge ...
Hvis jeg i scriptet's config følger instruktionerne og fx skriver:
$ip_dns = "www.eksperten.dk";

får jeg:
Pinger nu XX.XX.XX.XX (Min ip)

Mindste pingtid:
Gennemsnitlige pingtid:
Højeste pingtid:
Avatar billede angelenglen Nybegynder
19. marts 2003 - 13:31 #3
Jeg har forresten også ftp, php og mysql på begge servers - både den der skal pinge, og den der skal pinges.
Avatar billede emmek Nybegynder
19. marts 2003 - 13:54 #4
B-one har spærret for indkommende ICMP pakker ved deres tilslutning til DIX'en..
-bash-2.05b$ ping 212.97.135.51
PING 212.97.135.51 (212.97.135.51): 56 data bytes
92 bytes from 212.97.135.51: Destination Port Unreachable
Vr HL TOS  Len  ID Flg  off TTL Pro  cks      Src      Dst
4  5  00 5400 c6f5  0 0000  3a  01 fd1a 193.162.159.97  212.97.135.51

Dvs. at du faktisk ikke kan pinge dit webhotel, og jeg tænker sådan set også at de har spærret for alle andre porte end 21,25,80,110(ftp,smtp,http,pop3).

Når det er sagt, kan du muligvis stille dig tilfreds med at pinge fra dit webhotel istedet. Måden du gør det på, er at du laver et php skriv der pinger og logger en række hosts som du er sikker på svarer på ICMP pakker.

Stort set det koden fra netcoders.dk gør, du skal bare sørge for skrivet ikke eksekverer linjen:
$ip_dns = getenv("REMOTE_ADDR");
som sætter adressen der skal pinges til din egen (du er klienten der eksekverer skrivet fra en remote adresse..).

Men denne test gennemføres desværre kun 1 gang for hver gang skrivet bliver kørt fra din browser. Muligvis kan du uploade et shellscript (da de sikkert kører linux) og sætte det til at eksekvere i baggrunden... Det er dog ikke sikkert dine udbydere vil blive MØG forelsket i dig hvis du forsøger dig med dette..
Avatar billede angelenglen Nybegynder
19. marts 2003 - 14:01 #5
hovsa kom til at afvise...

Anyway: jeg er ligeglad om de bliver sure - hvordan gør jeg?
Avatar billede emmek Nybegynder
19. marts 2003 - 14:39 #6
lav en fil der hedder pingscrpt.sh:
ping -n 3 $@ >resultat.txt &

Den kalder du istedet fra din exec kommando i dit php skriv:
exec("sh pingscrpt.sh ".$hostname, $dummyforscreenoutput);

Hvis dette resulterer i en fil der hedder resultat.txt på dit webhotel, så er vi glade.. Du er dog nød til selv at kigge på shellscipts, da jeg endnu ikke selv er helt sikker i dem endnu..
Avatar billede emmek Nybegynder
19. marts 2003 - 14:40 #7
pingscrpt.sh skal forresten ligge på dit webhotel også..
Avatar billede angelenglen Nybegynder
24. maj 2003 - 14:38 #8
kan ikke få det til at virke :(
Avatar billede emmek Nybegynder
24. maj 2003 - 17:35 #9
Det er fordi de har spærret for eksekvering af eksterne programmer med php så. Så er der ikke noget du kan gøre - desværre :o\
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