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 02.10.2010 um 11:17:17 Uhr
Code in Codeblock verpackt. Bitte Formatierungshilfe ansehen.

Content-Key: 152221

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

Ausgedruckt am: 19.03.2024 um 02:03 Uhr

Mitglied: EvilMoe
EvilMoe 02.10.2010 um 11:03:26 Uhr
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.
Mitglied: Arano
Arano 02.10.2010 um 11:06:02 Uhr
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...
Mitglied: kaktus
kaktus 02.10.2010 um 11:54:25 Uhr
Goto Top
$errstr,5

Das war die Lösung, DANKE