php模拟qq登录 php模拟登录实例

发布时间:2019-10-14编辑:脚本学堂
本文介绍了php模拟qq登录的方法,在php中curl模拟提交则可以实现登录动作,有关php模拟登录的实例教程,需要的朋友参考下。

在微博上看到网友使用php实现自动挂qq,就自我思考了下模拟登录的方式。

在php中curl模拟提交则可以实现登录动作,这个方式在asp则较难实现,使用js倒是有点思路,但js不能跨域限制。
那位网友也是使用了php的curl实现的。
php我确实是刚看,至于什么是curl,上php官网查,虽然不明白到底是什么意思,但照葫芦画瓢还是会的,共享万岁。
因为是由程序来自动提交登录的,所有js在程序里面就没什么用处了,而且要找个流量小的,太大程序下载的速度就会非常慢,最后定在使用3gqq登录方式。

跟着curl的参数来,找个提交登录的3gqq的登陆url,http://pt5.3g.qq.com/,因为网页格式是wap格式的,所以只有使用chrome或者opera才能访问,否则都会出现下载提示,ie8也不能访问,ie9不知道会不会改善。查看源码,会看到就几个输入框和几个隐藏的输入框,相信看到这里的你知道是神马个东西了。

例子:
 

复制代码 代码示例:
<?php
$qqno='你的qq';
$qqpw='qq密码';
$cookie = dirname(__file__).'/cookie.txt';
$post = array(
 'login_url' => 'http://pt.3g.qq.com/s?sid=atall43n7zulrq5v8zdfojol&aid=nlogin',
 'q_from' => '',
 'logintitle' => 'login',
 'bid' => '0',
 'qq' => $qqno,
 'pwd' => $qqpw,
 'logintype' => '1',
 'loginsubmit' => 'login',
);
$curl = curl_init('http://pt.3g.qq.com/handlelogin?aid=nloginhandle&sid=atall43n7zulrq5v8zdfojol');
curl_setopt($curl, curlopt_header, 0);
curl_setopt($curl, curlopt_returntransfer, 1);
curl_setopt($curl, curlopt_cookiejar, $cookie); // ?cookie
curl_setopt($curl, curlopt_post, 1);
curl_setopt($curl, curlopt_postfields, http_build_query($post));
$result = curl_exec($curl);
curl_close($curl);
?>

在测试时,因为cookie没有设置,因为总是想着这不是在客户端提交,记录cookie也没有什么用,就删除了cookie参数,试了好多次之后加上cookie就成功了。
另外,qq登录时会对你的ip进行检测,如果登录的IP地址不是经常登录的ip地址,则需要输入验证码,此时上面的模拟登录就不能用了,jucelin也没想到什么好的方式解决。
不过,可以手动尝试在http://pt5.3g.qq.com/上登录,多登录几次,验证码就不会再有了,当然这里的几次不是登录就退出再登录再退出那么简单,估计至少时间跨度要大点,登录2-3次基本上就ok了。
其实使用sid登录也是一种模拟qq登录的方式,sid码来自于登录后的url中,每次登录都会分配唯一的sid码,这也是3gqq全站登录的方式,因为要考虑有的手机不支持cookie(这里突然想到腾讯要是使用session,会是什么样的状况),但又要实现全站登录的需求。

通过sid码登录就不多说了,相信聪明的你肯定能想到。

php模拟qq登录

>>> 更多 php模拟登录 文章,专题链接:php模拟登录 php curl模拟登录教程大全