该灌水器的需求只是用户登陆之后,打开某个贴子,然后随便填写个昵称,写下内容,就可以提交没有验证码,但是同一个帐号有回复的时间限制,要求40秒钟内只能回一个贴麻烦大家出出主意,一定送分

解决方案 »

  1.   

    灌水的目的是提高人气,将贴子的点击率回复率提高,使贴子不沉下去
    bao兄弟,能帮帮忙吗
    或者谈下原理也行
      

  2.   

    依我想,像这个帖子,查看 HTML 源代码可以看到,回复交至 /Expert/reply.asp 进行处理,采用 post 方法提交,提交的参数有回复内容(ReplyContent)、Topicid、RoomID、xmlReply、 csdnname、csdnpassword 这些参数,通过 URLConnection 来设置这些参数的值,再进行提交不知可以吗,不过这种方法好像很死板的~~,不过还是不能完全理解灌水的作用。
      

  3.   

    我做了一个回复这个帖子的程序,但是返回结果告诉我没有登录,不知道在程序中如何控制 session。
      

  4.   

    还能访问别人服务器上的资源(session)啊,强啊
      

  5.   

    只要求回复的数量,不要求回复的数量,由于我的需求很简单,只是针对单一个贴或固定的几个贴,所以不需要程序能读懂贴子的内容,只要能够不断自动回复就可以了,也就是瞎回复,
    bao,能做到吗?
      

  6.   

    我觉着用js写一个html页面就可以自动发帖了
    抓包 看看正常发帖post了什么东西
    就用js来post什么东西
      

  7.   

    唉~~我使用是 Apache Commons HttpClient,但我不大会用。以我目前的水平做不到,因为一般论坛回复必须先登录才可以,但是如果是用程序来提交登录数据,不知道再次运行程序时该如何获得登录时的 session,如果没有 session 记录的话,论坛就不让你回复了。
      

  8.   

    回复人:root_mind() ( 一级(初级)) 信誉:100  2007-9-5 8:50:01  得分:0
    ?  我觉着用js写一个html页面就可以自动发帖了
    抓包 看看正常发帖post了什么东西
    就用js来post什么东西
    ___________________________________________________
    这个比较强
      

  9.   

    我以前做过一个  其实很垃圾的原理是先截个包 就是你点提交时浏览器发的POST包这个包里面 包含着帖子的ID 你发的信息 你的用户名和密码(加密过的)根据需要 自己修改这个包然后设置一个TIMER 40发一次  帖子ID+1  这个就可以了
      

  10.   

    楼上的朋友,我不知道如何抓取post包
    还有,能否有实例讲下如何设置
      

  11.   

    抓包用jpcap,但是还是用httpclient比较好,记得发数据的时候把cookies里面的东西一起发出去,这样就不会说你没登录了
      

  12.   

    自己搜过了下网络上的程序,然后修改了一下,针对于当前的这个贴子的回复地址进行程序测试:http://community.csdn.net/Expert/xsl/Reply_Xml.asp?Topicid=5741670&RoomID=5401
    但是还是不行,使用的是httpclient,程序如下,麻烦大家帮忙看看import org.apache.commons.httpclient.*;import org.apache.commons.httpclient.cookie.*;import org.apache.commons.httpclient.methods.*; /** * 用来演示登录表单的示例 * @author Liudong */public class FormLoginDemo {
        static final String LOGON_SITE = "community.csdn.net/Expert/xsl/Reply_Xml.asp?Topicid=5741670&RoomID=5401";    static final int    LOGON_PORT = 80;        public static void main(String[] args) throws Exception{        HttpClient client = new HttpClient();        client.getHostConfiguration().setHost(LOGON_SITE, LOGON_PORT);              //模拟登录页面login.jsp->main.jsp        PostMethod post = new PostMethod("/Expert/reply.asp");
     post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gb2312");  NameValuePair c1 = new NameValuePair("Topicid", "5741670"); 
     NameValuePair c2 = new NameValuePair("RoomID", "5401"); 
     NameValuePair c3 = new NameValuePair("xmlReply", "aaaaa"); 
     NameValuePair c4 = new NameValuePair("ReplyContent", "cds"); 

            NameValuePair name = new NameValuePair("csdnname", "csdn用户名");             NameValuePair pass = new NameValuePair("csdnpassword", "登录密码");             post.setRequestBody(new NameValuePair[]{c1,c2,c3,c4,name,pass}); /*NameValuePair searchkeyword = new NameValuePair("ReplyContent","1330227");        post.setRequestBody(new NameValuePair[] { searchkeyword});*/       int status = client.executeMethod(post);        System.out.println(post.getResponseBodyAsString());        post.releaseConnection();                //查看cookie信息        CookieSpec cookiespec = CookiePolicy.getDefaultSpec();        Cookie[] cookies = cookiespec.match(LOGON_SITE, LOGON_PORT, "/", false, client.getState().getCookies());       if (cookies.length == 0) {           System.out.println("None");           } else {           for (int i = 0; i < cookies.length; i++) {               System.out.println(cookies[i].toString());               }       }       //访问所需的页面main2.jsp        GetMethod get = new GetMethod("/main2.jsp");        client.executeMethod(get);        System.out.println(get.getResponseBodyAsString());        get.releaseConnection();    }}执行之后返回的内容有乱码,也不知道是什么意思:
    <HTML>
    <HEAD>
    <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <link rel="stylesheet" href="/csdn.css">
    <style>
    textarea.content
    {
    font-family:Fixedsys ????;
    behavior:url('/Expert/xsl/tacontent1.htc');
    }
    </style>
    <SCRIPT LANGUAGE="javascript">
    <!--
    function input(ok)
    {
        var M1=ok.ReplyContent.value;
        if (M1=='') {
    alert('??????????????????.');
    return false;
    }
    ok.B1.disabled =true;
    ok.B2.disabled =true;
        return true;
    }
    //-->
    </SCRIPT>
    </HEAD>
    <BODY>

    <table border="0" width="100%" height="100%" ID="Table2"> <tr>
    <td valign="top">

    <table><tr><td>
      <a href='http://job.csdn.net/Jobs/ViewCompany/0b498a4a1955412a8095c756b2ac6b13.aspx' target='_blank'><font color='#0000FF'>???ú??(????)???????í/Java/ASP</font></a>
      </td><td>&nbsp;&nbsp;</td><td>
      <a href='http://www.uplooking.com/index.php?option=com_content&task=view&id=78&Itemid=73' target='_blank'><font color='#000000'>????Linux???????????¤????????</font></a>
      </td><td>&nbsp;&nbsp;</td><td>
      <a href='http://job.csdn.net/Jobs/ViewCompany/07c3efd013654ecd982d654dc527a053.aspx' target='_blank'><font color='#0000CC'>???úEA?????í????·??¤????</font></a>
      </td></tr></table><table><tr><td>
      <a href='http://www.now.cn' target='_blank'><font color='#000000'>??300??100,?ü?à?????×???±?ú</font></a>
      </td><td>&nbsp;&nbsp;</td><td>
      <a href='http://ad.cn.doubleclick.net/click;h=v2|3895|0|0|%2a|k;131302431;0-0;0;18083554;31-1|1;21609388|21627278|1;;%3fhttp://www.ibm.com/cn/takebackcontrol/open?re=banner' target='_blank'><font color='#000000'>??·??í??×???????????</font></a>
      </td><td>&nbsp;&nbsp;</td><td>
      <a href='http://subject.csdn.net/novell_linux.htm' target='_blank'><font color='#000000'>Novell???¤Linuxר??×???????</font></a>
      </td></tr></table> </td>
    </tr> <tr>
    <td>
    <br>
    <br>
    ????????????????·¨·?±í?????????×??????<br>
    &nbsp;&nbsp; <a href="http://passport.csdn.net/UserLogin.aspx?from=http://community.csdn.net/Expert/TopicView1.asp?id=5741670" target="_top">
    <font color="#000000">?? ??..</font></a> &nbsp;&nbsp; <a href="http://passport.csdn.net/Protocol.aspx?Next=Yes" target="_top">
    <font color="#000000">[×? ?á]</font></a> &nbsp;&nbsp; <a href="http://passport.csdn.net/UserLogin.aspx" target="_top">
    <font color="#000000">?ü??????</font> </a>
    <br>
    <br>
    <br>
    </td>
    </tr>
    <tr>
    <td>

    </td>
    </tr>
    </table>

    </BODY>
    </HTML>
      

  13.   

    这个问题很简单,首先你找到回帖那个form的action路径以及回帖需要填写的几个表单的名字,然后你就可以在你的程序中使用同样的名字和action通过定时器来发帖就可以了,如果有验证码的话,那你还需要抓取网页了,获得验证码的同时发送表单这样就复杂多了
      

  14.   

    如果该论坛发送请求方式为post,是不是还要做拆包的工作呢?
    “然后随便填写个昵称,写下内容,就可以提交”有些论坛不是这种方式回帖呐!
    你这个辛苦做了是否有市场?!
      

  15.   

    ProvidenceZY你好,
    我在上面的程序中已经是这样做的了,但是一直没办法提交成功,你能帮我看下吗?
      

  16.   

    Lisliefor() 你好,我只能想实现这个功能而已,不是卖钱的,^_^
      

  17.   

    乱码是编码问题,转“GBK”或“UTF-8”试试。
    觉得最重要的还是拆包的工作,只要你了解到回帖时,表单传递的是一些什么信息(属性名与实际数据成对,例:username="****"),传递到后台那个业务逻辑中,明白了的话,用脚本都可以发送HTTP请求,只要按照格式发送,不会很复杂。
    以前工作时,维护过类似的软件,不过是别人用PB写的,用的JS脚本发送HTTP请求,比这个复杂,可能截包时,还要解密,而且还有数字证书的问题。可惜,我看不到源码。
      

  18.   

    乱码问题,可能需要转编码,试试“GBK”或“UTF-8”。
    POST方式下,拆包的必要的,个人觉得只要明白回帖时,表单传递的信息(属性名与内容成对,例如:username="*****")以及处理这些数据的业务逻辑,弄明白这些,用JS脚本模拟发送HTTP请求就可以达到目的了。
    前一次工作,维护过这类软件,是PB写的。那个复杂多了,截包后,可能还要解密,还要搞定数字签证。拆包完,后面就是很简单的事情了,剩下的交给脚本来做。
    不过我没干过拆包的工作,给不了什么好建议。
      

  19.   

    MGB,第一次回复不出来,以为没成功!
    又写了一次,不好意思!
      

  20.   

    HttpClient是个好东西
    乱码是编码问题,默认为ISO-8859-1,换成GBK就可以了
      

  21.   

    现在我是贴了程序出来了,但就是运行不成功
    希望大家针对我写的程序给点意见啊,用的就是HttpClient
      

  22.   

    CSDN 挺奇怪的,你刚发贴的时候我做了一个,返回的信息是你还没有登录的 HTML 代码,而现在返回的竟是:你的信息输入不是来自CSDN网站,这是不允许的!!<BR>建议关闭防火墙重试,如果成功,请修改防火墙的具体设置。以 norton 防火墙为例,在<BR>隐私设置里面的高级,输入站点,选择允许 cookie、referer即可。<BR>
      

  23.   

    我用
    http://community.csdn.net/Expert/reply.asp?Topicid=5741670&RoomID=5401
    这个地址打开的时候也是显示你的信息输入不是来自CSDN网站,这是不允许的!!
    建议关闭防火墙重试,如果成功,请修改防火墙的具体设置。以 norton 防火墙为例,在
    隐私设置里面的高级,输入站点,选择允许 cookie、referer即可。
      

  24.   

    一般网站安全性考虑,都会将登录人员的信息保存在session中。如楼上朋友的,:
    http://community.csdn.net/Expert/reply.asp?Topicid=5741670&RoomID=5401显然是GET方式请求。你不登录,session自然不会存在,而网站在用户访问某些资源的时候,都会做一些判断,session对象是否为空,如此,根本没有漏洞让你钻,自然是先提示你登录。这个用过滤流Filter很容易实现。而麻烦的是,如果是以POST方式请求,可能浏览器地址栏无论你跳转多少个页面,上面的url是不变的,这个无可避免要进行拆包工作了。
    所以还是那句话,先拆包,剩下的其实没什么。
      

  25.   

    为什么非要用JAVA写啊..不能有别的实现方法吗...
      

  26.   

    一般网站安全性考虑,都会将登录人员的信息保存在session中。如楼上朋友的,:
    http://community.csdn.net/Expert/reply.asp?Topicid=5741670&RoomID=5401显然是GET方式请求。你不登录,session自然不会存在,而网站在用户访问某些资源的时候,都会做一些判断,session对象是否为空,如此,根本没有漏洞让你钻,自然是先提示你登录。这个用过滤流Filter很容易实现。而麻烦的是,如果是以POST方式请求,可能浏览器地址栏无论你跳转多少个页面,上面的url是不变的,这个无可避免要进行拆包工作了。
    所以还是那句话,先拆包,剩下的其实没什么。问下怎么拆包,拆包之后又要怎么做?
      

  27.   

    我Google了一个拆包工具,现在正在研究,有结果了,放上来
      

  28.   

    HttpWatch Pro V4.1.26
    http://www.hackhome.com/Vipcndown.asp?ID=2588   
    安装后,点“许可”,许可文件就在安装目录..\HttpWatch Pro下,选中HttpWatch.lic文件,就可以使用专业版了。使用时,打开IE(其他浏览器可能不行,至少MyIE2不行)。IE菜单栏“查看”——“浏览器栏”——“HttpWatch Profession”勾上。下边便多了一些工具bar。在你想记录或分析数据包时候,点左上角“记录”,下面将滚动你浏览网页时的请求:摘要、标题、Cookies、缓存、POST数据.....CSDN上回复并没有采用POST方式。
    当摸索到它提交包规则后,就可以进行编写你那个工具的尝试了,我到下一贴举个例子吧!
      

  29.   

    csdn的灌水论坛里面到处是灌水机器人~~~
    他们要是愿意教你,还不是很容易嘛
    写个这样的东西
      

  30.   

    我记录了上一贴的发送过程,中间有一段最长的URL:
     00:03:18.794 0.022 0 GET (缓存) application/x-shockwave-flash http://zi.csdn.net/community_post_page_large_banner_760x90.swf?clickTAG=http://z.csdn.net/gmclick.php%3Fbannerid=1099%26zoneid=35%26source=%26dest=http%3A%2F%2Fad.cn.doubleclick.net%2Fclick%3Bh%3Dv2%7C3895%7C0%7C0%7C%252a%7Co%3B119003118%3B0-0%3B0%3B18084160%3B31-1%7C1%3B21609388%7C21627278%7C1%3B%3B%253fhttp%3A%2F%2Fwww.ibm.com%2Fcn%2Ftakebackcontrol%2Fflexible%3Fre%3Dbanner
    缓存内容为一大串二进制编码,显示为乱码,估计大约是我回复的内容。
    这个请求过程中,URL变化很多,我也理不清,到底那些是有用的数据(这些还是我过滤掉图片之类信息后的结果)。建议楼主自己写一个简洁的留言板,没有图片,什么其他的什么。尝试一下抓包,积累经验。
    呵呵,我还是小看了后面的工作,现在看起来,也不是很简单的事情类。一起尝试下.....
      

  31.   

    Lisliefor真是好人,
    继续解决中……………………
      

  32.   

    功能已实现,用的是httpclient
    结贴