WebQQ2登录协议检查是否需要验证码;用Web登录QQ时需要先打开web2.
qq.
com,但我们用的是应用程序模拟浏览器登录,所以这一步是没有必要的,所以我们主要看看点击"登录"按钮时浏览器向服务器发送什么数据了.
Web登录QQ输入帐号输入焦点离开时,有时会提示要输入验证码,那么第一步就是要看看什么样的QQ号需要输入验证码.
地址(GET):http://ptlogin2.
qq.
com/checkuin=QQ号码)&appid=1003903(固定)&r=0.
2664082343145449(随机18位)是我测试用的QQ号,r的值是个随机数,写成固定的也行.
请求头:Accept:*/*Referer:http://ui.
ptlogin2.
qq.
com/cgi-bin/logintarget=self&style=4&appid=1003903&enable_qlogin=0&no_verifyimg=1&s_url=http%3A%2F%2Fweb2.
qq.
com%2Floginproxy.
html%3Flogin_level%3D3&f_url=loginerroralertAccept-Language:zh-cnUser-Agent:Mozilla/4.
0(compatible;MSIE8.
0;WindowsNT5.
1;Trident/4.
0;TencentTraveler4.
0;EmbeddedWB14.
52from:http://www.
bsalsa.
com/EmbeddedWB14.
52;.
NETCLR2.
0.
50727;.
NETCLR3.
0.
04506.
648;.
NETCLR3.
5.
21022;.
NET4.
0C;.
NET4.
0E;InfoPath.
3;.
NETCLR3.
0.
4506.
2152;.
NETCLR3.
5.
30729)Accept-Encoding:gzip,deflateHost:ptlogin2.
qq.
comConnection:Keep-AliveCookie:uikey=19ea2072338f7eb80f2573896d71465aeacae8d6122638c50ba8fcbb53ebb904;ptvfsession=eb95548fa394315edcf67e9cecd6e1ac09918361e8c08c3ab993faeaa0aa6ff333f89dfc4bb277c6a59ddebcdcbbd29d;ptuserinfo=e6b885;pgv_info=pgvReferrer=&ssid=s5705120712;ptui_width=370;ptui_height=198;ptisp=ctc;pgv_pvid=1361064104;pgv_flv=10.
0请求数据:uin=QQ号码)appid=1003903(应用程序ID也就是WebQQ的版本,固定的)r=0.
2664082343145449(随机数18位)返回数据:返回数据(需要验证码):ptui_checkVC('1'(1=需要验证码,0=不需要),'8a6143167c8ca486696cf01c3ea088d658b913d64b11289b'(验证码数据,这个数据在第一次获取验证码时作为参数来获取.
));返回数据(不需要验证码):"ptui_checkVC('0','!
OMD');"括号里有两个被逗号隔开的单引号引着的数据,第一个值如果为0,则第二值为验证码,即不需要再从服务器获取验证码图片了,这个就是验证码了;第一个值如果不是1,则需要从服务器获取验证码图片,验证码需要根据图片人工输入.
获取验证码;如果第一步中返回的数据中,括号里第一个单引号引起来的数据为0,则不需要这步.
第一次获取验证码地址:http://captcha.
qq.
com/getimageaid=1003903&r=0.
6869804609544552&uin=vc_type=8a6143167c8ca486696cf01c3ea088d658b913d64b11289b是我测试用的QQ号.
"http://captcha.
qq.
com/getimage"固定是不用怀疑的,aid=1003903是固定的(看web2.
qq.
com的页面数据就能找到了),r=0.
6869804609544552是个随机数也毫无疑问,uin=是QQ号,vc_type=.
.
.
是js文件生成的,具体怎么回事就不知道了.
研究表明,"GEThttp://captcha.
qq.
com/getimage&uin=aid=1002101&0.
7581186622105849"这样就可以,后面那个随机数写成固定的就行了,服务器肯定不会每次都给你一样的验证码.
获取验证码图片的同时,还需要获取Cookie,verifysession的值,登录时要用请求头:Accept:*/*Referer:http://ui.
ptlogin2.
qq.
com/cgi-bin/logintarget=self&style=4&appid=1003903&enable_qlogin=0&no_verifyimg=1&s_url=http%3A%2F%2Fweb2.
qq.
com%2Floginproxy.
html%3Flogin_level%3D3&f_url=loginerroralertAccept-Language:zh-cnUser-Agent:Mozilla/4.
0(compatible;MSIE8.
0;WindowsNT5.
1;Trident/4.
0;TencentTraveler4.
0;EmbeddedWB14.
52from:http://www.
bsalsa.
com/EmbeddedWB14.
52;.
NETCLR2.
0.
50727;.
NETCLR3.
0.
04506.
648;.
NETCLR3.
5.
21022;.
NET4.
0C;.
NET4.
0E;InfoPath.
3;.
NETCLR3.
0.
4506.
2152;.
NETCLR3.
5.
30729)Accept-Encoding:gzip,deflateHost:captcha.
qq.
comConnection:Keep-AliveCookie:pgv_info=pgvReferrer=&ssid=s5705120712;ptui_width=370;ptui_height=314;ptisp=ctc;pgv_pvid=1361064104;pgv_flv=10.
0查询数据:aid=1003903(版本号)r=0.
6869804609544552(随机18位)uin=QQ号码)vc_type=8a6143167c8ca486696cf01c3ea088d658b913d64b11289b(在检查是否需要验证码时返回的数据)登录验证码错误后再获取验证码的地址:http://captcha.
qq.
com/getimage&uin=QQ号码)&aid=null&0.
2710155929371449(随机18位)请求头:Accept:*/*Referer:http://ui.
ptlogin2.
qq.
com/cgi-bin/logintarget=self&style=4&appid=1003903&enable_qlogin=0&no_verifyimg=1&s_url=http%3A%2F%2Fweb2.
qq.
com%2Floginproxy.
html%3Flogin_level%3D3&f_url=loginerroralertAccept-Language:zh-cnUser-Agent:Mozilla/4.
0(compatible;MSIE8.
0;WindowsNT5.
1;Trident/4.
0;TencentTraveler4.
0;EmbeddedWB14.
52from:http://www.
bsalsa.
com/EmbeddedWB14.
52;.
NETCLR2.
0.
50727;.
NETCLR3.
0.
04506.
648;.
NETCLR3.
5.
21022;.
NET4.
0C;.
NET4.
0E;InfoPath.
3;.
NETCLR3.
0.
4506.
2152;.
NETCLR3.
5.
30729)Accept-Encoding:gzip,deflateHost:captcha.
qq.
comConnection:Keep-AliveCookie:pgv_info=pgvReferrer=&ssid=s5705120712;ptui_width=370;ptui_height=336;ptisp=ctc;pgv_pvid=1361064104;pgv_flv=10.
0;verifysession=h0085e1faa63ddb7b0a43e4b04a215c06b44c70e8f5a74446cf760bc553121135e8c7807bc56dac6e614c096f1ef92c9ff2请求数据:uin=QQ号吗)aid=null(为空)0.
2710155929371449=(随机18位)登录;登录地址:http://ptlogin2.
qq.
com/loginu=8630662(QQ号)&p=793E7DF74F8D87021F79A69F0DBF8287(md5(md5(密码)+验证码))&verifycode=hgjj(验证码)&remember_uin=1&aid=1003903&u1=http%3A%2F%2Fweb2.
qq.
com%2Floginproxy.
html%3Flogin_level%3D3&h=1&ptredirect=0&ptlang=2052&from_ui=1&pttype=1&dumy=&fp=loginerroralert&mibao_css="http://ptlogin2.
qq.
com/login"不必讨论,u=是QQ号,p=.
.
.
是密码,这密码并不是原始密码很正常,不然盗个QQ号也太容易了(插一句,其实服务器也不知道你密码是什么,但它知道你密码经过处理以后长什么样,所以你密码丢了,它只会给你新密码,而不会告诉你旧密码,因为它也不知道啊,^_^),这个密码好像是用MD5对原始密码加密,用输入的验证码处理一下再用MD5加密得到的,具体可以到js文件里研究一下.
verifycode=afbc就是你输入的验证码,remember_uin=1是记住帐号,aid=1002101同上,u1=http%3A%2F%2Fweb.
qq.
com%2Fmain.
shtml%3Fdirect__2固定,本来%3A%2F%2F表示":\\",%3F表示"",但这里不能代替,是个转义字符.
webqq_type是隐身标志,后面其他都固定.
注意要设置Cookie,verifysession的值请求头:Accept:*/*Referer:http://ui.
ptlogin2.
qq.
com/cgi-bin/logintarget=self&style=4&appid=1003903&enable_qlogin=0&no_verifyimg=1&s_url=http%3A%2F%2Fweb2.
qq.
com%2Floginproxy.
html%3Flogin_level%3D3&f_url=loginerroralertAccept-Language:zh-cnUser-Agent:Mozilla/4.
0(compatible;MSIE8.
0;WindowsNT5.
1;Trident/4.
0;TencentTraveler4.
0;EmbeddedWB14.
52from:http://www.
bsalsa.
com/EmbeddedWB14.
52;.
NETCLR2.
0.
50727;.
NETCLR3.
0.
04506.
648;.
NETCLR3.
5.
21022;.
NET4.
0C;.
NET4.
0E;InfoPath.
3;.
NETCLR3.
0.
4506.
2152;.
NETCLR3.
5.
30729)Accept-Encoding:gzip,deflateHost:ptlogin2.
qq.
comConnection:Keep-AliveCookie:uikey=19ea2072338f7eb80f2573896d71465aeacae8d6122638c50ba8fcbb53ebb904;ptvfsession=eb95548fa394315edcf67e9cecd6e1ac09918361e8c08c3ab993faeaa0aa6ff333f89dfc4bb277c6a59ddebcdcbbd29d;ptuserinfo=e6b885;pgv_info=pgvReferrer=&ssid=s5705120712;ptui_width=370;ptui_height=314;ptisp=ctc;pgv_pvid=1361064104;pgv_flv=10.
0;verifysession=h0085e1faa63ddb7b0a43e4b04a215c06b44c70e8f5a74446cf760bc553121135e8c7807bc56dac6e614c096f1ef92c9ff2登录前需设置Cookie-:verifysession(这个值在获取验证码时得到)登录结果;ptuiCB('0','0','http://web2.
qq.
com/loginproxy.
htmllogin_level=3','0','登录成功!
');是登录成功的结果括号中的第一个值是登录结果参数,0:登录成功!
1:系统繁忙,请稍后重试.
2:已经过期的QQ号码.
3:您输入的密码有误,请重试.
4:您输入的验证码有误,请重试.
5:校验失败.
6:密码错误.
如果您刚修改过密码,请稍后再登录.
7:您的输入有误,请重试.
8:您的IP输入错误的次数过多,请稍后再试.
http://web2.
qq.
com/loginproxy.
htmllogin_level=3是登录成功后浏览器用的地址,应用程序用不着,固定这个地址就可以.
注意,登录成功的话要获取Cookie值,后面要用,尤其是skey,ptcz,ptwebqq.
另外还有一个参数verifysession,就是验证码的那个Cookie,也要用.
获取登录后参数;地址:http://d.
web2.
qq.
com/channel/login2返回数据:{"retcode":0,"result":{"uin"cip":3071582136,"index":1078,"port":53985,"status":"hidden","vfwebqq":"5ab2ce0743496ffa257aa4119f35e44324171aa08d3e14a4c506b7e392ca80b73e34551cef71a248","psessionid":"8368046764001e636f6e6e7365727665725f7765627171403137322e32372e3138312e3835000062450000079e03620524ef666d0000000a406e4e53734a517a33556d000000285ab2ce0743496ffa257aa4119f35e44324171aa08d3e14a4c506b7e392ca80b73e34551cef71a248"}}第一个是QQ号;第三个是索引、第二个和第四个是服务器的端口号;第五个是登录状态,在线还是隐身;第六个未知,第7个就是所谓的登录令牌了,叫web_session;再说一下最前面的数,正常情况是"0";"2"表示连接错误;"4"表示授权错误;"5"表示密码错误;"6"表示登录状态解码错误;剩下的其他值表示未知错误.
易探云服务器怎么过户/转让?易探云支持云服务器PUSH功能,该功能可将云服务器过户给指定用户。可带价PUSH,收到PUSH请求的用户在接收云服务器的同时,系统会扣除接收方的款项,同时扣除相关手续费,然后将款项打到发送方的账户下。易探云“PUSH服务器”的这一功能,可以让用户将闲置云服务器转让给更多需要购买的用户!易探云服务器怎么过户/PUSH?1.PUSH双方必须为认证用户:2.买家未接收前,卖家...
阿里云(aliyun)在这个月又推出了一个金秋上云季活动,到9月30日前,每天两场秒杀活动,包括轻量应用服务器、云服务器、云数据库、短信包、存储包、CDN流量包等等产品,其中Aliyun轻量云服务器最低60元/年起,还可以99元续费3次!活动针对新用户和没有购买过他们的产品的老用户均可参与,每人限购1件。关于阿里云不用多说了,国内首屈一指的云服务器商家,无论建站还是学习都是相当靠谱的。活动地址:h...
819云互联 在本月发布了一个购买香港,日本独立服务器的活动,相对之前的首月活动性价比更高,最多只能享受1个月的活动 续费价格恢复原价 是有些颇高 这次819云互联与机房是合作伙伴 本次拿到机房 活动7天内购买独立服务器后期的长期续费价格 加大力度 确实来说这次的就可以买年付或者更长时间了…本次是5个机房可供选择,独立服务器最低默认是50M带宽,不限制流量,。官网:https://ww...