Server-Status

Die Scriptsprache PHP fĂĽr die Gestaltung von dynamischen Websites.

Server-Status

Beitragvon Blutsturz » Di 20 Jun, 2006 12:08

hallo, ich habe folgendes skript auf meiner hp eingebaut um den status des webservers anzuzeigen:

Code: Alles auswählen
<?php
# Server:Port
$server="10.195.0.16:80";
?>

<html>
<head>
<title>Server Status</title>
<style type="text/css">
<!--
body      {
         color: #ffffff;
         font-family: Verdana, sans-serif;
         font-size: 8pt;
         text-decoration: none;
         margin-left: 0em;
         margin-top: 0em;
         vertical-align:middle
      }
p      {
         color: #ffffff;
         font-family: Verdana, sans-serif;
         text-decoration: none; 
         font-size: 8pt;
         margin-left: 0.4em;
         margin-top: 0.4em;
         font-weight: 500;
         text-align: center;
         background: none;
         vertical-align:middle
      }
p.titel   {
         color: #ffffff;
         font-family: Verdana, sans-serif;
         text-decoration: none; 
         font-size: 8pt;
         margin-left: 0.4em;
         margin-top: 0.4em;
         font-weight: 600;
         text-align: center;
         background: none;
         vertical-align:middle
      }
a      {
         color: #ffffff;
         font-family: Verdana, sans-serif;
         text-decoration: none; 
         font-size: 8pt;
         font-weight: 500;
         vertical-align:middle

      }
b.red      {
         color: #ff0000;
         font-family: Verdana, sans-serif;
         text-decoration: none; 
         font-size: 8pt;
         font-weight: 500;
         vertical-align:middle

      }
b.green   {
         color: #009900;
         font-family: Verdana, sans-serif;
         text-decoration: none; 
         font-size: 8pt;
         font-weight: 500;
         vertical-align:middle
         
      }

-->
</style>
<meta http-equiv="refresh" content="60">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head> <body>
      <?php
# Script
$array = explode(":",$server); 
if (@fsockopen($array[0],$array[1],&$errno, &$errstr, 2))

echo "<p><b class=green>Online</b></p>"; 
}else

echo "<p><b class=red>Offline</b></p>"; 
}
?>
</body>
</html>


hier funktionierts und auf der website wird schön ONLINE in GRÜN dargestellt, mache ich das ganze nun mit der IP des STEAM SERVERS

Code: Alles auswählen
<?php
# Server:Port
$server="10.195.0.16:27015";
?>

<html>
<head>
<title>Server Status</title>
<style type="text/css">
<!--
body      {
         color: #ffffff;
         font-family: Verdana, sans-serif;
         font-size: 8pt;
         text-decoration: none;
         margin-left: 0em;
         margin-top: 0em;
         vertical-align:middle
      }
p      {
         color: #ffffff;
         font-family: Verdana, sans-serif;
         text-decoration: none; 
         font-size: 8pt;
         margin-left: 0.4em;
         margin-top: 0.4em;
         font-weight: 500;
         text-align: center;
         background: none;
         vertical-align:middle
      }
p.titel   {
         color: #ffffff;
         font-family: Verdana, sans-serif;
         text-decoration: none; 
         font-size: 8pt;
         margin-left: 0.4em;
         margin-top: 0.4em;
         font-weight: 600;
         text-align: center;
         background: none;
         vertical-align:middle
      }
a      {
         color: #ffffff;
         font-family: Verdana, sans-serif;
         text-decoration: none; 
         font-size: 8pt;
         font-weight: 500;
         vertical-align:middle

      }
b.red      {
         color: #ff0000;
         font-family: Verdana, sans-serif;
         text-decoration: none; 
         font-size: 8pt;
         font-weight: 500;
         vertical-align:middle

      }
b.green   {
         color: #009900;
         font-family: Verdana, sans-serif;
         text-decoration: none; 
         font-size: 8pt;
         font-weight: 500;
         vertical-align:middle
         
      }

-->
</style>
<meta http-equiv="refresh" content="60">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head> <body>
      <?php
# Script
$array = explode(":",$server); 
if (@fsockopen($array[0],$array[1],&$errno, &$errstr, 2))

echo "<p><b class=green>Online</b></p>"; 
}else

echo "<p><b class=red>Offline</b></p>"; 
}
?>
</body>
</html>


steht immer nur OFFLINE da, auch wenn der server auf 10.195.0.16:27015 definitiv läuft...wo könnte hier der fehler liegen?
Blutsturz
Neu im Board
Neu im Board
 
Beiträge: 22
Registriert: So 26 Mär, 2006 23:13
Wohnort: 1120 Wien

Beitragvon codec » Di 20 Jun, 2006 14:18

Das liegt daran dass der Source Server mittels UDP kommuniziert.
Du musst einen A2S_SERVERQUERY_GETCHALLENGE schicken, auf welches du dann eine Antwort bekommst.
siehe http://developer.valvesoftware.com/wiki ... er_Queries
codec
Board-User Level 1
Board-User Level 1
 
Beiträge: 553
Registriert: Di 28 Okt, 2003 12:48

Beitragvon codec » Di 20 Jun, 2006 20:41

damit ich dich nicht so im regen stehen las,
hier eine moegliche loesung

[php]
# Script
$data = "";
$array = explode(":",$server);
$fp = fsockopen("udp://".$array[0],$array[1]);
socket_set_timeout($fp, 2);
fwrite($fp,"\xFF\xFF\xFF\xFF\x57");
$data = fgets($fp,9);
if ($data == "")
{
echo "<p><b class=red>Offline</b></p>";
}
else
{
echo "<p><b class=green>Online</b></p>";
}
[/php]
codec
Board-User Level 1
Board-User Level 1
 
Beiträge: 553
Registriert: Di 28 Okt, 2003 12:48

Beitragvon Blutsturz » Di 20 Jun, 2006 23:57

mann, schei** danke, klar udp...
ein GANZ großes dankeschön!
Blutsturz
Neu im Board
Neu im Board
 
Beiträge: 22
Registriert: So 26 Mär, 2006 23:13
Wohnort: 1120 Wien

Beitragvon fslomka » So 20 Jan, 2008 01:28

Blutsturz hat geschrieben:mann, schei** danke, klar udp...
ein GANZ großes dankeschön!

Soweit sogut nur kann mir bitte jemand den fertigen link schicken weil ich kenn mich mit php nicht gut aus ich hab das gleiche problem das es mit dem tcp protokoll nicht geht ich brauche also auch ein udb protokoll ich habe keine feste ip und deswegen hab ich https://www.dyndns.com/ genommen das aktualisierrt immer meine ip
meine ip ist fslomka.selfip.info der server ist bei mir zu hause und ich brauche einen script damit meine freunde sehen ob der server on oder off ist
fslomka
Neu im Board
Neu im Board
 
Beiträge: 15
Registriert: So 20 Jan, 2008 01:25

Beitragvon fslomka » So 20 Jan, 2008 12:23

und wie schicke ich das server querry irgendwohin was muss ich machen damit das geht ich check das nicht ich muss irgendwie ein server querry schicken das beantwortet wird nur ich hab keine ahnung in welcher sprache das ist schaut nach java aus von dem hab ich keine ahnung
fslomka
Neu im Board
Neu im Board
 
Beiträge: 15
Registriert: So 20 Jan, 2008 01:25

Beitragvon max_payne » So 20 Jan, 2008 12:24

das ist php

womit willst du es machen?
max_payne
Ultimate Power-User
Ultimate Power-User
 
Beiträge: 4982
Registriert: Mo 30 Aug, 2004 12:25

Beitragvon fslomka » So 20 Jan, 2008 12:29

mit php nur ich brauche es zusammengefasst ip ist wie du warscheinlich weiĂźt fslomka.selfip.info und der standart port der css server ist 27015
fslomka
Neu im Board
Neu im Board
 
Beiträge: 15
Registriert: So 20 Jan, 2008 01:25

Beitragvon fslomka » So 20 Jan, 2008 12:46

kann mir den keiner helfen?
fslomka
Neu im Board
Neu im Board
 
Beiträge: 15
Registriert: So 20 Jan, 2008 01:25

Beitragvon hellbringer » So 20 Jan, 2008 12:51

Naja, wenn du vielleicht mal Deutsch schreiben wĂĽrdest, wĂĽrden die Leute auch verstehen, was du willst. Ich blick da jedenfalls nicht durch.
hellbringer
Profi-User
Profi-User
 
Beiträge: 1619
Registriert: Di 04 Mai, 2004 19:35

Beitragvon lordpeng » So 20 Jan, 2008 13:13

hab zwar weder ahnung von php noch von computerspielen, aber wenn ich wissen will, ob ein netzwerkdienst läuft, dann kann ich das direkt auf dem server mit netstat testen, das ganze verpackt in ein cgi-script welches ok oder nicht ok ausgibt (oder wasauchimmer) - fertig ... an dieses cgi script kann dann jedes weitere programm andocken

wenn ich dann noch die zahl der connections (oder wasauchimmer) zahlenmässig darstellen kann, kann ich dahinter auch gleich mrtg oder rrdtool dranklemmen und hab eine schöne visualisierung davon ...
lordpeng
Moderator
Moderator
 
Beiträge: 10183
Registriert: Mo 23 Jun, 2003 22:45

Beitragvon fslomka » So 20 Jan, 2008 15:03

Also ich werde mal genau sagen was ich will Ich brauche einen Script der entweder in html oder php geschrieben wird.
Dieser script muss mir sagen ob der Server mit der ip fslomka.selfip.info und den port 27015 läuft ONLINE oder OFFLINE ist.
Das protokoll ist UDP ihr habt schon einen fonktionierenden TCP script geschrieben
aber ich brauche einen UDP script und das ist alles und ich brauche ihn eifach fertig nicht das ich ihn zusammenbauen muss.
fslomka
Neu im Board
Neu im Board
 
Beiträge: 15
Registriert: So 20 Jan, 2008 01:25

Beitragvon fslomka » So 20 Jan, 2008 15:12

genau das kann ich ja nicht deswegen frag uch ja wie dass fertige ausschaut
fslomka
Neu im Board
Neu im Board
 
Beiträge: 15
Registriert: So 20 Jan, 2008 01:25

Beitragvon lordpeng » So 20 Jan, 2008 15:18

zwar nicht das wonach du suchst, aber damit solltest du das problem lösen können ...

windows variante
netstat -a|findstr UDP|findstr 27015 && echo yes||echo no

linux variante
netstat -a|grep UDP|grep 27015 && echo yes||echo no
lordpeng
Moderator
Moderator
 
Beiträge: 10183
Registriert: Mo 23 Jun, 2003 22:45

Beitragvon fslomka » So 20 Jan, 2008 15:20

<?php
# Server:Port
$server="10.195.0.16:27015";
?>

<html>
<head>
<title>Server Status</title>
<style type="text/css">
<!--
body {
color: #ffffff;
font-family: Verdana, sans-serif;
font-size: 8pt;
text-decoration: none;
margin-left: 0em;
margin-top: 0em;
vertical-align:middle
}
p {
color: #ffffff;
font-family: Verdana, sans-serif;
text-decoration: none;
font-size: 8pt;
margin-left: 0.4em;
margin-top: 0.4em;
font-weight: 500;
text-align: center;
background: none;
vertical-align:middle
}
p.titel {
color: #ffffff;
font-family: Verdana, sans-serif;
text-decoration: none;
font-size: 8pt;
margin-left: 0.4em;
margin-top: 0.4em;
font-weight: 600;
text-align: center;
background: none;
vertical-align:middle
}
a {
color: #ffffff;
font-family: Verdana, sans-serif;
text-decoration: none;
font-size: 8pt;
font-weight: 500;
vertical-align:middle

}
b.red {
color: #ff0000;
font-family: Verdana, sans-serif;
text-decoration: none;
font-size: 8pt;
font-weight: 500;
vertical-align:middle

}
b.green {
color: #009900;
font-family: Verdana, sans-serif;
text-decoration: none;
font-size: 8pt;
font-weight: 500;
vertical-align:middle

}

-->
</style>
<meta http-equiv="refresh" content="60">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head> <body>
<?php
# Script
$array = explode(":",$server);
if (@fsockopen($array[0],$array[1],&$errno, &$errstr, 2))
{
echo "<p><b class=green>Online</b></p>";
}else
{
echo "<p><b class=red>Offline</b></p>";
}
?>
</body>
</html>

DIESER SCRIPT IST FĂśR TCP ICH BRAUCHE IHN FĂśR UDP NICHT TCP DAS IST alles was ich will wie muss der script ausschauen damit er ĂĽber UDP funkt ich brauche ihn einfach fertiggeschrieben
fslomka
Neu im Board
Neu im Board
 
Beiträge: 15
Registriert: So 20 Jan, 2008 01:25

Nächste

ZurĂĽck zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 20 Gäste

cron