ICQ Status abfragen braucht zu lange

Mr.Propper

New Member
HiHo,

Um meinen ICQ Status auf der Hzugeben nutze ich folgendes Script

PHP:
public function GetICQStatus($uin) 
	{
	  		if(!is_numeric($uin)) return false;
	  		$fp = @fsockopen('status.icq.com', 80, $errno, $errstr, 5);
	  		if(is_resource($fp)) 
			{
	  	  		stream_set_timeout($fp,3);
		  		$request = "HEAD /online.gif?icq=".$uin."&img=5 HTTP/1.1\r\n"."Host: status.icq.com\r\n"."Connection: close\r\n\r\n";
		  		fputs($fp, $request);
		  	do
		  	{
				$response = fgets($fp, 25);
		  	}
		  	while(!feof($fp) && !stristr($response, 'Location'));
		  	fclose($fp);
		  	if(strstr($response, 'online1')) return 'online';
		  	if(strstr($response, 'online0')) return 'offline';
		  	if(strstr($response, 'online2')) return 'offline';
	  		}
			else 
			{
		  		return 'offline';
	  		}
	}

Auf localhost läuft es fix durch, aber dem Live System dauert es ewig. An dem Script kann ich ändern was ich will, es wird nicht weniger. Nun gehts an die php.ini aber nach was muss ich da schauen?
 
Ich denke der Nameserver-Lookup dauert zu lange, sprich deine primaeren Resolver fuehlen sich nicht zustaendig oder sind ausgefallen.

Der Grund ist dass fsockopen durch einen Fehler (oder Feature :P) bei jedem einzelnen Aufruf resolven will.
Um das zu vermeiden kannst du zuerst mit gehostbyname() die IP auslesen und diese dann an fsockopen verfuettern, die Funktion cached naemlich die Werte.
 
Ich denke der Nameserver-Lookup dauert zu lange, sprich deine primaeren Resolver fuehlen sich nicht zustaendig oder sind ausgefallen.

Stimmt, Die Nameserver sind ausgefallen so das ich einen funktionierenden zusätzlich eingetragen habe.
Seit dem ist auch aptitude xxxxxxx extrem lahm.

Muss ich mal den Hoster Fragen wann diese wieder verfügbar sind.
 
Alternative Nameserver:

=> OpenDNS
208.67.222.222
208.67.220.220
=>Google
8.8.8.8
8.8.4.4
=>DnsAdvantage
156.154.70.1
156.154.71.1
 
Back
Top