用PHP取QQ在线状态

王朝php·作者佚名  2006-01-09
宽屏版  字体: |||超大  

这两天无心工作,无聊中就写了这个用PHP取QQ在线状态的小东西。原理很简单,省略不说了,可以看代码。用的是互动状态这个服务去取状态的。

用法也简单,传入的参数为QQ号码,函数返回1则表示QQ在线,函数返回0则表示QQ不在线,返回小于0则表示出错。

注:需要QQ是用QQ2004II beta1或以上版本登陆才可以检测得到哦:)

顺祝大家圣诞快乐。

附代码如下:

<?php

// vim: set expandtab tabstop=4 shiftwidth=4 fdm=marker:

// +----------------------------------------------------------------------+

// | PHP Library. |

// +----------------------------------------------------------------------+

// | Copyright (c) 2004 Fishchen, China. |

// +----------------------------------------------------------------------+

// | Authors: Fishchen, China. |

// | fishchen <fishchen#gmail.com> |

// +----------------------------------------------------------------------+

// $Id$

/**

* @note License: GNU General Public License (GPL) version 2

* @file $RCSfile$

* @version 1.0

* @author fishchen

* @date 2004/12/24 11:00:00 (Merry Xmas)

* @brief Get QQ Online Status.

*/

/* {{{ function tphp_qq_online( $uin ) */

/**

* Get QQ online status.

*

* @note Need user login QQ with QQ2004IIbeta1 or laster.

* @param int $uin QQ Number.

* @retval int $ret 1: online, 0: offline, <0: error.

*/

function tphp_qq_online( $uin )

{

$reques = "GET /pa?p=1:".$uin.":1 HTTP/1.1\r\n";

$reques .= "Host: wpa.qq.com\r\n";

$reques .= "User-Agent: PHP_QQ_SPY\r\n\r\n";

if ( !( $socket = socket_create( AF_INET, SOCK_STREAM, SOL_TCP ) ) ) return(-1);

if ( !( socket_connect( $socket, "wpa.qq.com", 80 ) ) ) return(-1);

if ( !( socket_write( $socket, $reques ) ) ) return(-1);

if ( !( $respon = socket_read( $socket, 1024, PHP_BINARY_READ ) ) ) return(-1);;

socket_close( $socket );

$field = explode( "\r\n", $respon );

for ( $i=0; $i<count($field); $i++ ) {

if ( strncasecmp($field[$i], "Location:", 9) == 0 ) {

if ( strpos( $field[$i], "online") ) {

$ret = 1;

} else if ( strpos( $field[$i], "offline") ) {

$ret = 0;

} else {

$ret = -1;

} // if

break;

} // if

} // for

return( $ret );

}

/* }}} */

/* {{{ sample:

echo tphp_qq_online( 80000800 );

}}} */

?>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有