查了一下,像这种灌水机用一些像 perl ,php 之类的脚本语言写会很好,但我并没有什么正正经经的学习过这些脚本语言。后来再查了一下,发现在 C 语言下有个开源的 CURL 库是很有用的,这个库的许多函数可以用在像FTP,HTTP一类的网络应用上。一开始,我想用 C 语言来写这么一个工具,于是开始正儿八经的去研究这些库函数起来,但后来发现其实当安装完 curl 库后会带有个 curl 这个命令行的工具--事实上使用这个工具已经不需要在完整的编写程序了。
由于知识的相关联性,在研究这些函数的同时,会遇到像 http 里,html 应用中的相关内容 -- 比如 html 文件的 header 啊,referer啊,cookie啊,表单的属性及其应用等等的相关知识 -- 原来这些知识我以前都从没认真学习过。没办法,暂时又转移到了 html 的复习中去了。在掌握了相关的知识点后,就可以开工了。
工欲善其事必先利其器。这里,有两种工具会帮助你更快的玩成任务。一个是 WskExpert ,一个是 httpwatch ,推荐后者(当然你也自己也可以查看页面源代码得到这些参数),它像插件一样结合在 IE 里,可以截获许多有用的记录,如 POST 和 GET 的等等内容。这个东西是 widnows 里的工具。我喜欢 linux ,但我也不会盲目的去排斥 windows ,操作系统也只是方便人工作的一个程序工具而已,所以我在 linux 里面还虚拟了个 XP 。
curl -A "Mozilla/4.0" -d "foward=&jumpurl=http://bbs.xxx.com/index.php&step=2&lgt=0&pwuser=x-beyes&pwpwd=888888&question=0&customquest=&answer=&hideid=1&cktime=31536000" -D bbscookie.txt -o temp.htm http://bbs.xxx.com/login.php
在上面的命令中,参数 -A 是让程序模拟浏览器,我这里模拟 IE ,其实不模拟也不要紧。-d 参数引号里的长传内容是要 POST 出去的数据,里面就是相应登录页面的表单内容。这里就不一一详细阐述,因为都是登录页面表单中一一相对的东西。-D 参数是 dump 出相关的 cookies 信息,因为像论坛这种网站是时刻需要 cookies 验证的,这在后面的命令中会用到。-o temp.htm ,这个可以不要,这里使用上是因为你可以通过它观察到你命令的执行结果(直接打开 temp.html 网页查看即可)。