ivwghtiqny 发表于 2013-10-14 09:47:29

php插件--QQ自动登陆

本帖最后由 ivwghtiqny 于 2013-10-14 10:03 编辑

QQ拥有庞大的用户群,我们搞数据采集的当然不能放过它.比如:空间日志,空间说说,空间留言这类...

qq网络出身,对登陆还是防得比较严的.先说下思路:

1.检查登录是否需要验证码,获取验证码校验值
2.通过验证码校验值、密码计算出登录校验值
3.模拟登录

实现步骤和请求地址:
1.检查是否需要验证码:
URL:http://check.ptlogin2.qq.com/check?uin=QQ号码&appid=549000912&ptlang=2052&js_type=2&js_ver=10009&r=随机数

参数说明:
uin:QQ号
r:随机数

返回结果
不需要验证码:ptui_checkVC('0','!UYE','\x00\x00\x00\x00\x09\x15\xa9\x78')

2.计算校验值
从上一步的返回值中获得 skey(ptui_checkVC函数中的第三个参数)
从上一步的返回值中获得 code(ptui_checkVC函数中的第二个参数)

ptui_checkVC('0','code','skey')

$pwd = get_pwd(md5($pwd2 . strtoupper($code)));
这样就得到了加密后的密码了


模拟登录:
URL:
URL:http://ptlogin2.qq.com/login?ptlang=2052&u=QQ号码&p=上面加密后的$pwd&verifycode=验证码$code&css=http://imgcache.qq.com/p
tcss/b2/sjpt/549000912/qzonelogin_ptlogin.css&mibao_css=m_qzone&aid=549000912&u1=http%3A%2F%2Fqzs.qq.com%2Fqzone%2Fv5%2Flogin
succ.html%3Fpara%3Dizone&ptredirect=1&h=1&from_ui=1&dumy=&fp=loginerroralert&action=4-16-29103&g=1&t=1&dummy=&js_type=2&js_ve
r=10009

上面所有的发送都是使用php中的curl组件,代码在下面:


function get_data($url,$act,$psot){
            
            $Session = dirname(__FILE__).'/session.tmp';
      

            $ch = curl_init();//初始化curl
            curl_setopt($ch,CURLOPT_URL, $url);//提交到指定网页
            curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
            curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.12 (KHTML, like Gecko) Maxthon/3.0 Chrome/18.0.966.0 Safari/535.12');
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
            
            if ($act == 'on') {
               curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
               curl_setopt($ch, CURLOPT_POSTFIELDS, $psot);
            }
         
            curl_setopt($ch, CURLOPT_COOKIEFILE, $Session);
            curl_setopt($ch, CURLOPT_COOKIEJAR, $Session);//保存cookie
            $con = curl_exec($ch);//运行curl
            curl_close($ch);
            
            return $con;
}

发送登陆url后会返回
成功后返回结果:ptuiCB(\'0\',\'0\',\'http://qzs.qq.com/qzone/v5/loginsucc.html?para=izone\',\'1\',\'登录成功!\', \'QQ昵称\')
http://3.baobeitu.com/upload/1310/14/0938569385!37050.jpg?rd=1
http://3.baobeitu.com/upload/1310/14/0957053527!37050.gif
图片备用:
http://xiangce.baidu.com/picture/detail/21580024872a8ae35e22c2ca6dfc9c9a7d2bd7f2
http://xiangce.baidu.com/picture/detail/8026ff2d912516c645e98b90d3beca156fcfceb7
http://xiangce.baidu.com/picture/detail/21580024872a8ae35e22c2ca6dfc9c9a7d2bd7f2
这样QQ自动登陆就写好了,以后有机会再来分享给大家!



页: [1]
查看完整版本: php插件--QQ自动登陆