在微博上看到网友使用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不知道会不会改善。查看源码,会看到就几个输入框和几个隐藏的输入框,相信看到这里的你知道是神马个东西了。
例子:
在测试时,因为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模拟登录 文章,专题链接:php模拟登录 php curl模拟登录教程大全