自己也是学了c++,想做点事情,就想到了模拟登陆网站,网上也百度了很多教程,主要是就是那几个步骤,模拟请求头部,发送内容和发送方式。
首先模拟登陆,要模拟头部,我用了第三方库libcurl,这是一个第三库,上一篇博客说到了,为了安装我也是百度了很长时间,大概是自己太蠢了吧。
借用第三方库,实现头部的请求模拟,操作当然也是减少了很多,然后开始小试牛刀,访问一个网站,实现将网站的html源代码下载储存在文档中。写偏了。
现在来说模拟登陆163,首先是对163的登陆过程进行抓包,抓到了很多包,进行通讯分析,下面就是我分析的
1.1 首先是将访问mail.163.com获取了登陆界面,获得一个随机的pkid值。
2.2 然后填写账号密码,然后根据pkid和账号密码获得tk值,我也不懂是什么。
3.3 最后向https://dl.reg.163.com/l发送你的账号,处理后的密码,pd,tk值还有其他的内容,得到一些值作为cookie信息留下来以后使用。
4.4 最后向url https://mail.163.com/entry/cgi/ntesdoor?发送cookie信息内容是这个language=-1&style=-1&df=mail163_letter&from=web&allssl=false&race=46_43_84_bj&net=t&iframe=1&product=mail163&url2=http%3A%2F%2Fmail.163.com%2Ferrorpage%2Ferror163.htm试了几次,其中的race好像是变动的,自己也没学过相关的知识。得到回应top.location.href = “http://mail.163.com/js6/main.jsp?sid=*&df=mail163_letter”;就是你要跳转的界面,也说明你登陆成功了。
最后说明,这只是我的想法,具体还有很多细节,以我的知识能理解和表达的也就是这样了,希望大佬也能指导指导。