kaktus
Goto Top

Anpingen eines WEB PCs, dauert zu lange wenn nicht erreichbar

Hallo Forum, mir wurde hier schon oft geholfen, deshalb versuche ich es heute nochmals

Ich habe auf meiner Webseite einen PHP Script wie unen laufen. Er funktioniert soweit sehr gut, nur wenn xxxxx.dyndns.org nicht erreichbar ist, dann dauert das laden der Webseite sehr sehr lange, ca 30 Sekunden.
Das würde ich gerne auf 1 oder 2 Sekunden verkürzen.

Kurze Beschreibung:
Das script pingt eine Webadresse an, berechnet die Anwortzeit und gibt mir aus dem Logbuch (liegt auf einer anderen Adresse) die letzten drei Einträge zurück.

Beispiel:

XXXXXX-L OFFLINE 01:00 - 07:00 MEZ/MESZ

2010-09-28 18:19:51 Verifying I0RNK angelo 79.3.210.154
2010-09-28 18:19:56 Connect I0RNK angelo - 79.3.210.154
2010-09-28 18:20:07 Disconnect I0RNK Peer requested disconnect 

Frage 1: Wie könnte ich diese extrem lange Antwortzeit verkürzen.

Ich bin gerade am überlegen ob ich den Pingwert wirklich brauche.

Frage 2: Wie könnte man das Script kürzen, wenn man Ping nicht bräuchte?


$call='xxxxxx';  
$host='xxxxxxx.dyndns.org';  
$port='81';  
    
$starttime=microtime();
$socket=@fsockopen($host,$port);
stream_set_timeout($socket, 2);
$endtime=microtime();
               
                
				if ($socket!=false)
                    {
                        fclose($socket);
                        list($msec,$sec)=explode(' ',$starttime);  
                        $starttime=(float)$msec+(float)$sec;
                        list($msec,$sec)=explode(' ',$endtime);  
                        $endtime=(float)$msec+(float)$sec;
                        $pingtime=($endtime-$starttime)*1000;
                    }
                
				else
                    {
                        $pingtime=-1;
                    }
                
				if ($pingtime!=-1)
                    {
                        echo $call.'<b><font color="green"> ONLINE</font></b> 07:00 - 01:00 MEZ/MESZ | Ping '.round($pingtime,2).' ms';  
                    }
                
				else
                    {
                        echo $call.'<b><font color="red"> OFFLINE</font></b> 01:00 - 07:00 MEZ/MESZ';  
                    }
                
				flush();
				
echo '<br><br>';  
$file = file ('http://XXXXX.xxxx-xxxxx.de/ECHOLINK/QSOLog.txt');  

$zeile = array_pop($file);
$zeile_1 = array_pop($file);
$zeile_2 = array_pop($file);
echo $zeile_2.'<br>';  
echo $zeile_1.'<br>';  
echo $zeile;
fclose($file);
Kommentar vom Moderator masterG am Oct 02, 2010 um 09:17:17 Uhr
Code in Codeblock verpackt. Bitte Formatierungshilfe ansehen.

Content-Key: 152221

Url: https://administrator.de/contentid/152221

Printed on: May 4, 2024 at 16:05 o'clock

Member: EvilMoe
EvilMoe Oct 02, 2010 at 09:03:26 (UTC)
Goto Top
Vielleicht hilft dir das:
# fsockopen ( string $hostname [, int $port= -1 [, int &$errno [, string &$errstr [, float $timeout= ini_get("default_socket_timeout") ]]]] ) 


$socket=@fsockopen($host,$port,$errno, $errstr,5); //timeout von 5 sec.
Member: Arano
Arano Oct 02, 2010 at 09:06:02 (UTC)
Goto Top
Hallo Kaktus,

das sollte einfach gehen, schau dir das Manual noch mal an - die Parameter face-wink

PHP-Manual - fsockopen

Gruß
Arano

Edit: Ich sollte den Fernseher mal verschrotten lassen - immer diese Ablenkung...
Member: kaktus
kaktus Oct 02, 2010 at 09:54:25 (UTC)
Goto Top
$errstr,5

Das war die Lösung, DANKE