Kom ihåg mig?
Home Menu

Menu


php, pinga server

Ämnesverktyg Visningsalternativ
Oläst 2006-05-17, 17:29 #1
Iceyes Iceyes är inte uppkopplad
Nykomling
 
Reg.datum: Feb 2006
Inlägg: 16
Iceyes Iceyes är inte uppkopplad
Nykomling
 
Reg.datum: Feb 2006
Inlägg: 16
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"); 
?>
Hur ska man gå till väga?
Iceyes är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-05-17, 18:51 #2
elofssons avatar
elofsson elofsson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jul 2004
Inlägg: 881
elofsson elofsson är inte uppkopplad
Mycket flitig postare
elofssons avatar
 
Reg.datum: Jul 2004
Inlägg: 881
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
elofsson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-05-17, 18:54 #3
grazzy grazzy är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 3 471
grazzy grazzy är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 3 471
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.
grazzy är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-05-17, 19:07 #4
b_anderssons avatar
b_andersson b_andersson är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Apr 2004
Inlägg: 1 067
b_andersson b_andersson är inte uppkopplad
Har WN som tidsfördriv
b_anderssons avatar
 
Reg.datum: Apr 2004
Inlägg: 1 067
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'; 
?>
//Björn
b_andersson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-05-17, 21:15 #5
Iceyes Iceyes är inte uppkopplad
Nykomling
 
Reg.datum: Feb 2006
Inlägg: 16
Iceyes Iceyes är inte uppkopplad
Nykomling
 
Reg.datum: Feb 2006
Inlägg: 16
Citat:
Originally posted by b_andersson@May 17 2006, 19:07
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'; 
?>
//Björn
Det fungerar lite halvt som halft, men den verkar spara variabeln så även att man ändrar till en oåtkommlig adress så står det online ändå.

sen står det ju bara inte offline utan får även ett felmedelenade från koden.

vad kan man göra åt det?
Iceyes är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-05-17, 22:38 #6
zilda zilda är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 84
zilda zilda är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 84
Testa ett @ framför fsockopen

Kod:
<?php
$fp = @fsockopen('spelserver.mine.nu',4040,$errno,$errstr,1);
if(!$fp)
echo 'Offline';
else
echo 'Online';
?>
zilda är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-05-17, 23:14 #7
Iceyes Iceyes är inte uppkopplad
Nykomling
 
Reg.datum: Feb 2006
Inlägg: 16
Iceyes Iceyes är inte uppkopplad
Nykomling
 
Reg.datum: Feb 2006
Inlägg: 16
Citat:
Originally posted by zilda@May 17 2006, 22:38
Testa ett @ framför fsockopen

Kod:
<?php
$fp = @fsockopen('spelserver.mine.nu',4040,$errno,$errstr,1);
if(!$fp)
echo 'Offline';
else
echo 'Online';
?>
oh, jo tack det verkade fungera,

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 ?
Iceyes är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-05-18, 09:46 #8
Conths avatar
Conth Conth är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2005
Inlägg: 908
Conth Conth är inte uppkopplad
Mycket flitig postare
Conths avatar
 
Reg.datum: Aug 2005
Inlägg: 908
Citat:
Ursprungligen postat av Iceyes
Citat:
Ursprungligen postat av zilda
Testa ett @ framför fsockopen

Kod:
<?php
$fp = @fsockopen('spelserver.mine.nu',4040,$errno,$errstr,1);
if(!$fp)
echo 'Offline';
else
echo 'Online';
?>
oh, jo tack det verkade fungera,

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 ?
Kanske lite off-topic.
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
Conth är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 17:44.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017