Online/Offline Status vom Stream!

AlphaCPU

Grünschnabel
Hallo zusammen,

Bin neu hier im Board und habe folgendes Problem.
Ich würde gerne wissen, ob in dem Script irgend etwas falsch ist, weil ich es heute getestet hatte und obwohl der Stream Offline war zeigte es ONLINE an.
Ich hoffe ihr könnt mir weiter helfen.

PHP:
<?php
echo '<html>
        <title>Radio Status</title>
        <body bgcolor="#3C0005">
		<body topmargin="1" leftmargin="16">';
echo '<font face="Verdana" size="2" color="white">Radio ist: </font>';

if(!(@fsockopen("xxx.xxx.xxx.xxx",8000,&$errno,&$errstr,2))){
  echo '<font face=Verdana size="2" color="red"><b>OFFLINE</b></font>';
  die();
}  

echo '<font face="Verdana" size="2" color="green"><b>ONLINE</b></font>';




echo '  </body>
      </html>';
?>

Mfg AlphaCPU
 
Zuletzt bearbeitet:
naja zu dem if kommt auch noch ein else und dann kannst du dir das die sparen (also zum einen)

PHP:
if(!(@fsockopen("xxx.xxx.xxx.xxx",8000,&$errno,&$errstr,2)))
  echo '<font face=Verdana size="2" color="red"><b>OFFLINE</b></font>';
else
  echo '<font face="Verdana" size="2" color="green"><b>ONLINE</b></font>';

also bei mir gibts damit bisher keine probleme...Wobei das auch nur heisst, dass auf dem Port ein Connect stattfinden kann.
Aber du kannst ja auch mal schauen was in errno und errstr steht.
 
Hi,

Danke das du mir soweit geholfen hast, leider habe ich nicht erwähnt, dass ich keine ahnung von php habe und somit auch nicht weiss, was deine veränderungen auswirken.
Wäre nett wenn du mal des script so komplett nochma hinschreibst wie es funktionieren würde, dann kann ichs ja nochmal testen. Wäre dir sehr dankbar

Gruss AlphaCPU
 
Zuletzt bearbeitet:
Ich habe das problem, dass ich jedesmal wenn ich den status meines servers abrufen will einen timeout bekomme, aber der server ist online und in der firewall sind die ports auch freigegeben. hat jemand ne ahnung woran das liegen kann? bin schon kurz vorm verzweifeln:( gruß kevin
 
Hi, willkommen im Forum.

Zeig doch mal bitte den Code her den Du dafuer benutzt. Anhand dessen kann man vielleicht feststellen wo das Problem liegt.
 
PHP:
@fsockopen('kalimo.mine.nu',9000,&$errno,&$errstr,10)

habe das in meine eigene templateengine eingebunden...via templatescripting
im template sieht das dann so aus:

Code:
".(fsockopen('kalimo.mine.nu',9000,&$errno,&$errstr,10)?"
<!-- radio -->
<div style=\"margin-top: 5px;\">
 <div class=\"dbtitle\">
  <div class=\"dtitle mediumfont bold\">
   <a href=\"javascript:openw('radio.php?sid=$sid',600,200);\">$lang_main[PSO]</a>
  </div>
 </div>
 <div class=\"dbrow1\">
  <div class=\"drow1 smallfont\">
   <br />
  </div>
 </div>
 <div class=\"dbspacer\"><div></div></div>
</div>
<!-- End radio-->":"")."

der server is on, ich kann den stream auch "empfangen"... allerdings bekomme ich nen timeout.

Code:
Warning: fsockopen() [function.fsockopen]: unable to connect to www.kalimo.mine.nu:4662 (Connection timed out) in /customers/kalimo.net/kalimo.net/httpd.www/partyscout/radio.php(35) : eval()'d code on line 24
 
ja sorry. die fehlermeldung war von nem anderen test...

die fehlermeldung sieht dann halt dementsprechend aus...

Code:
Warning: fsockopen() [function.fsockopen]: unable to connect to kalimo.mine.nu:9000 (Connection timed out) in /customers/kalimo.net/kalimo.net/httpd.www/partyscout/radio.php(35) : eval()'d code on line 24
 
Ich hab grad mal ein wenig rumgespielt und bin zu folgendem Ergebnis gekommen:
  • Der Server steht offensichtlich bei Dir zuhause, da ein Reverse-DNS-Query der aufgeloesten IP einen T-Online-DialIn-Hostnamen zurueck gibt.
  • Port 4662 und 9000 werden als gefiltert angezeigt, Pakete gehen hin, es kommen aber keine zurueck.
  • Um zu testen ob der Host online ist hab ich erstmal einen Ping probiert. Auch dort kam nichts zurueck.
    Dann hab ich einfach mal auf Port 80 geschaut, der ist offen. Ein Verbindungsaufbau funktioniert.
Das alles laesst mich nun folgendes vermuten:
  • Du nutzt einen Router um in's Internet zu gehen. Pakete an nicht geoeffnete Ports werden einfach gedroppt.
  • Der Rechner der den Stream bereitstellt ist hinter diesem Router.
  • Du hast die Ports nicht vom Router zu diesem Rechner weitergeleitet.
  • Du selbst kannst den Stream sehen weil Du im gleichen Netzwerk bist und Deine Pakete Dein LAN niemals verlassen muessen um den Stream zu bekommen, selbst wenn Du die externe IP (ueber Deinen Hostnamen) nutzt.
  • PHP kann die Ports nicht oeffnen weil Du nicht auf einem Server im LAN testest sondern von Deiner Website.
Das ganze ist also, wenn meine Vermutungen richtig sind, kein PHP-Problem, sondern ein Netzwerk-Problem.

Aber bis das bestaetigt ist lasse ich den Thread erstmal hier im PHP-Forum.
 
joa, stimmt alles. ist vielleicht besser, wenn du den thread dann ins netzwerkforum verschiebst. allerdings lässt sich der rechner anpingen...

richtig, der server hängt hinter nem router im internet. im router hab ich den portbereich 8999 bis 9001 freigegeben. die portumleitung hab ich für den server für den port 9000 eingestellt. fehlt da jetzt noch was? DNS funktioniert. Hab ich da noch irgendwas vergessen? was ich jetzt nicht ganz verstehe...ich kann den radiostream ja problemlos empfangen... :confused:
 

Neue Beiträge

Zurück