FAQ |
Kalender |
2006-05-17, 17:29 | #1 | ||
|
|||
Nykomling
|
Jag va inne på bygga nån form av script som pingar en server och återvänder med resultat i form av text online,offline
Skulle servern vara nere och inte svarar på ping request ska den skriva ut offline svarar den på en ping request skriver den online. Det här var bara nått jag koka ihop, jag kanske är helt fel ute? Kod:
<?php ping ("spelserver.mine.nu:4040", ) or die()); ("Offline"); print ("Online"); ?> |
||
Svara med citat |
2006-05-17, 18:51 | #2 | |||
|
||||
Mycket flitig postare
|
Finns ingen inbyggd funktion i PHP som heter ping. Men en sökning på Google ger dig en hel del vägledning och färdiga scripts.
Det jag hittade var PHP-funktionen system() som kan användas för att "pinga". Ett exempel finns här: http://www.theworldsend.net/ping_src.php |
|||
Svara med citat |
2006-05-17, 18:54 | #3 | ||
|
|||
Klarade millennium-buggen
|
Err, använd fsockopen med en låg timeout istället. Då har man även möjligheten att verifiera att en services svarar "normalt" också.
Att exekvera externa program i onödan är sällan jättebra. |
||
Svara med citat |
2006-05-17, 19:07 | #4 | |||
|
||||
Har WN som tidsfördriv
|
Grazzy har helt rätt, använd fsockopen, prova något i stil med:
Kod:
<?php $fp = fsockopen('spelserver.mine.nu',4040,$errno,$errstr,1); if(!$fp) echo 'Offline'; else echo 'Online'; ?> |
|||
Svara med citat |
2006-05-17, 21:15 | #5 | ||
|
|||
Nykomling
|
Citat:
sen står det ju bara inte offline utan får även ett felmedelenade från koden. vad kan man göra åt det? |
||
Svara med citat |
2006-05-17, 22:38 | #6 | ||
|
|||
Medlem
|
Testa ett @ framför fsockopen
Kod:
<?php $fp = @fsockopen('spelserver.mine.nu',4040,$errno,$errstr,1); if(!$fp) echo 'Offline'; else echo 'Online'; ?> |
||
Svara med citat |
2006-05-17, 23:14 | #7 | ||
|
|||
Nykomling
|
Citat:
nu återstår bara en sak jag inte lyckas lösa. den verkar endast kunna connecta till port 80, om det som i det här fallet är en spel server resulterar det till att den alltid står offline för att jag inte pingar port 80 är det nån specell server man brukar pinga? vad kan man annars göra ? |
||
Svara med citat |
2006-05-18, 09:46 | #8 | |||
|
||||
Mycket flitig postare
|
Citat:
Känns som begreppet ping används "felaktigt" här. Ping går inte mot en port utan över ICMP. Om du vill verifiera att din server lyssnar på port 80 (eller någon annan port) så kan du ju göra en socket connect på port 80 och se att servern är uppe (lyssnar på port 80). Dvs som exemplen ovan. Detta är dock inte en nätverksmässig "ping" *EDIT stavning |
|||
Svara med citat |
Svara |
|
|