我的系统环境是 OpenSuse 11.1 Linux,其实你选哪个版本的 LINUX 都差不多。首先要做的是安装好 curl 库,关于安装这个库可以用系统自带的软件管理器安装,也可以去官网下载安装,谷歌一下就知道了。
安装完这个库后,就会相应安装好 curl 命令。如果你有兴趣,而且了解 C 语言,你可以调用库函数编制相应的软件,但这里我就不写出这个软件了,原因是用命令就可以快速简单的实现所想要的功能。
这里,灌水的前提是,发帖回贴不需要图形验证码的。
首先,登录论坛:
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,不伪装也可以,但有些页面需要 IE 来访问。
-d : 用 POST 的方式提交表单内容(至于双引号中的内容就是表单的相关信息,可以阅读页面的源码获得,也可以用 windows 下的 WskExpert 这样的嗅探软件获得),这里就不赘述了。
-D : dump 出当前的 cookie 信息到文件中(因为论坛这种东西各个页面都需要用到 cookie 信息的)
-o : 把页面信息到处到一个 htm 文件中。
经过上面一句后,就实现了论坛的登录。接下来我们去回贴:
curl -d"atc_usesign=1&atc_convert=1&atc_money=0&atc_credittype=money&atc_rvrc=0&atc_enhidetype=money&atc_title=Re%3A%E4%B8%87%E4%B8%88%E6%B0%B4%E6%A5%BC%E5%B9%B3%E5%9C%B0%E8%B5%B7&atc_autourl=1&atc_content=888889999999999999&step=2&action=reply&fid=141&tid=8139&verify=1054bc2d&atc_desc1=&attachment_1=&att_special1=0&att_ctype1=money&atc_needrvrc1=0"-b bbscookie.txt -o temp.htm http://bbs.xxx.com/post.php
上面的内容和登录时的差不多,双引号部分仍然为表单的内容信息。这里讲一个参数 -b,这个参数的后面带有之前 dump 出的 cookie 信息,这里是必须的。
OK了,已经成功了一半。下面就写一个简单的脚本实现这个自动灌水功能:
#!/bin/bash
COUNT=1
while [ "$COUNT" -le 88888 ]
do
curl -d"atc_usesign=1&atc_convert=1&atc_money=0&atc_credittype=money&atc_rvrc=0&atc_enhidetype=money&atc_title=Re%3A%E4%B8%87%E4%B8%88%E6%B0%B4%E6%A5%BC%E5%B9%B3%E5%9C%B0%E8%B5%B7&atc_autourl=1&atc_content=888889999999999999&step=2&action=reply&fid=141&tid=8139&verify=1054bc2d&atc_desc1=&attachment_1=&att_special1=0&att_ctype1=money&atc_needrvrc1=0"-b bbscookie.txt -o temp.htm http://bbs.xxx.com/post.php
sleep 10
curl-d"atc_usesign=1&atc_convert=1&atc_money=0&atc_credittype=money&atc_rvrc=0&atc_enhidetype=money&atc_title=Re%3A%E4%B8%87%E4%B8%88%E6%B0%B4%E6%A5%BC%E5%B9%B3%E5%9C%B0%E8%B5%B7&atc_autourl=1&atc_content=8888888888888&step=2&action=reply&fid=141&tid=8139&verify=1054bc2d&atc_desc1=&attachment_1=&att_special1=0&att_ctype1=money&atc_needrvrc1=0"-b bbscookie.txt -o temp.htm http://bbs.xxx.com/post.php
COUNT=$((COUNT+1))
sleep 10
done
exit 0
-----------------
上面的脚本原理很简单,就是一个循环。每隔 10 秒发一帖,如果你要灌水的论坛没有时间限制或者时间限制比较短,则 sleep 后面的数值可以相应调小。
到此,一个灌水机就完成了。注意,上面的脚本并不是全自动的,登录以及提取网页的 hash 值需要手动去玩成。如果你很熟悉 linux 下脚本的正则表达式,你完全可以在脚本中提取 hash 信息,以实现全自动化运行。
从这里可以看出,linux 的网络功能相当强大,命令行下面执行程序效率高而且省资源。效果图如下所示:
转载请注明:鸟儿博客 » 基于linux命令行的论坛灌水机