de.comp.lang.php.* FAQ

25.18. Wie kann ich prüfen, ob eine bestimmte ICQ UIN online ist?

Keywords: ICQ | Mirabilis | UIN | online | offline | disabled

Antwort von Johannes Frömter

Es gibt einige fertige Scripte, die mit Hilfe von PHP testen können, ob eine bestimmte UIN online ist. Die meisten dieser Scripte funktionieren allerdings nicht mehr, weil ICQ (wieder einmal) etwas verändert hat. Der Server liefert auch weiterhin Redicts auf die Bildchen, allerdings hat sich die URL geändert.

Das folgende Script wertet die Redirects aus:

function GetICQ($uin) {
    if (!is_numeric($uin)) return FALSE;

    $fp = fsockopen('status.icq.com', 80, &$errno, &$errstr, 8);
    if (!$fp) return FALSE;

    $request = "HEAD /online.gif?icq=$uin HTTP/1.0\r\n"
              ."Host: web.icq.com\r\n"
              ."Connection: close\r\n\r\n";
    fputs($fp, $request);

    do {
        $response = fgets($fp, 1024);
    }
    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 'disabled';
    // disabled meint, dass der Benutzer eingestellt hat, dass sein 
    // Status im Web nicht angezeigt wird.
    
    return FALSE;
}

// Aufruf:
echo GetICQ(12423456);

Valid HTML 4.01! Valid CSS!

25.18. Wie kann ich prüfen, ob eine bestimmte ICQ UIN online ist?
http://www.php-faq.de/q/q-code-icq.html
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team