海浩网论坛

 找回密码
 关闭注册
搜索
热搜: 女囚槛 win7
查看: 822|回复: 17
打印 上一主题 下一主题

吐血了 刚调试完一个简陋的刷屏代码,那个帖子就关闭了 [复制链接]

UID
358
注册时间
2000-12-23
帖子
896
精华
0
跳转到指定楼层
1#
发表于 2009-1-3 20:38:45 |只看该作者 |倒序浏览

用php写的,curl模块
执行:php -q $script_name
  1. <?php
  2. set_time_limit(0);

  3. function bbs_login($ch , $uname , $passwd , $formhash , $cookietime , $referer){
  4.         $url = 'http://yknet28.8866.org/logging.php?action=login&loginsubmit=true' ;
  5.         $postfields = 'formhash=' . $formhash . '&cookietime=' . $cookietime . '&loginfield=username&username=' . $uname . '&password=' . $passwd . '&userlogin=true' ;
  6.         //print $postfields ;
  7.         $options = array(CURLOPT_URL => $url,
  8.       CURLOPT_HEADER => 0,
  9.       CURLOPT_NOBODY => 0,
  10.       CURLOPT_PORT => 80,
  11.       CURLOPT_POST => 1,
  12.       CURLOPT_POSTFIELDS => $postfields,
  13.       CURLOPT_RETURNTRANSFER => 1,
  14.       CURLOPT_FOLLOWLOCATION => 1,
  15.       CURLOPT_COOKIEJAR => 'c:\windows\temp\highot' ,
  16.       CURLOPT_COOKIEFILE => 'c:\windows\temp\highot' ,
  17.       CURLOPT_REFERER => $referer
  18.         ) ;
  19.         curl_setopt_array($ch, $options);
  20.         $code = curl_exec($ch) ;
  21.         $info = curl_getinfo($ch) ;
  22.         if ($code === false || $info['http_code'] != 200){
  23.                  $code = "No cURL data returned for $url [". $info['http_code']. "]";
  24.                 if (curl_error($ch)){
  25.                         $code .= "\n". curl_error($ch) ;
  26.                         //print $code ;
  27.                         exit(-1) ;
  28.                 }
  29.   }
  30.   else{
  31.           $url = 'http://yknet28.8866.org/' ;
  32.           curl_setopt($ch , CURLOPT_URL , $url) ;
  33.                 curl_setopt($ch , CURLOPT_HEADER , 0) ;
  34.                 curl_setopt($ch , CURLOPT_RETURNTRANSFER , 1) ;
  35.                 $code = curl_exec($ch) ;
  36.                 return $code ;
  37.         }
  38. }

  39. function bbs_post($ch , $formhash , $subject , $message , $topicsubmit , $referer){
  40.         $url = 'http://yknet28.8866.org/post.php?action=newthread&fid=71&extra=page%3D1&topicsubmit=yes' ;
  41.         $postfields = 'formhash=' . $formhash . '&subject=' . $subject . '&message=' . $message . '&topicsubmit=' . $topicsubmit ;
  42.         print $postfields ;
  43.                 $options = array(CURLOPT_URL => $url,
  44.       CURLOPT_HEADER => 0,
  45.       CURLOPT_NOBODY => 0,
  46.       CURLOPT_PORT => 80,
  47.       CURLOPT_POST => 1,
  48.       CURLOPT_POSTFIELDS => $postfields,
  49.       CURLOPT_RETURNTRANSFER => 1,
  50.       CURLOPT_FOLLOWLOCATION => 1,
  51.       CURLOPT_COOKIEJAR => 'c:\windows\temp\highot' ,
  52.       CURLOPT_COOKIEFILE => 'c:\windows\temp\highot' ,
  53.       CURLOPT_REFERER => $referer
  54.         ) ;
  55.         curl_setopt_array($ch, $options);
  56.         $code = curl_exec($ch) ;
  57.         $info = curl_getinfo($ch) ;
  58.         if ($code === false || $info['http_code'] != 200){
  59.                  $code = "No cURL data returned for $url [". $info['http_code']. "]";
  60.                 if (curl_error($ch)){
  61.                         $code .= "\n". curl_error($ch) ;
  62.                         print $code ;
  63.                         exit(-1) ;
  64.                 }
  65.   }
  66.   else return $code ;
  67. }


  68. $uname = "" ; //[color=Red]这儿要写你的用户名[/color]
  69. $passwd = "" ;//[color=Red]这儿要写密码[/color]
  70. $formhash = "" ;

  71. $ch = curl_init() ;
  72. $url = 'http://yknet28.8866.org/' ;
  73. curl_setopt($ch , CURLOPT_URL , $url) ;
  74. curl_setopt($ch , CURLOPT_HEADER , 0) ;
  75. curl_setopt($ch , CURLOPT_RETURNTRANSFER , 1) ;
  76. $code = curl_exec($ch) ;
  77. //print $code ;
  78. if(!$code){
  79.         print "first error\n" ;
  80.         exit(-1) ;
  81. }
  82. $pattern = '/<button\s+name=\"userlogin\"\s+type=\"submit\"\s+value=\"true\">登录<\/button>/' ;
  83. if(preg_match($pattern , $code)){
  84.         $pattern = '/<input\s+type=\"hidden\"\s+name=\"formhash\"\s+value=\"(\w+)\"\s+\/>/' ;
  85.         if(!preg_match($pattern , $code , $matches)){
  86.                 curl_close($ch) ;
  87.                 print "pattern error 0\n" ;
  88.                 exit(-1) ;
  89.         }
  90.         $formhash = $matches[1] ;
  91.         $pattern = '/<input\s+type=\"hidden\"\s+name=\"cookietime\"\s+value=\"(\d+)\"\s+\/>/' ;
  92.         if(!preg_match($pattern , $code , $matches)){
  93.                 curl_close($ch) ;
  94.                 print "pattern error 1\n" ;
  95.                 exit(-1) ;
  96.         }
  97.         $cookietime = $matches[1] ;
  98.         //print "formhash = " . $formhash . "\n" ;
  99.         //print "cookie = " . $cookietime . "\n" ;
  100.         $code = bbs_login($ch , $uname , $passwd , $formhash , $cookietime , '') ;
  101.         //print $code ;
  102. }
  103. $pattern = '/<a href=\"logging.php\?action=logout&formhash=(\w+)\" class=\"notabs\">退出<\/a>/' ;
  104. if(preg_match($pattern , $code , $matches)) $formhash = $matches[1] ;
  105. print "formhash = " . $formhash ;
  106. $code = bbs_post($ch , $formhash , "test" , "test0000" , '' , '') ;//test是主题;test0000是内容,可以更改
  107. //print $code ;

  108. curl_close($ch);
  109. ?>
复制代码

[ 本帖最后由 judite 于 2009-1-3 20:41 编辑 ]
已有 1 人评分银币 金币 收起 理由
kent777 + 30 + 30 精品文章

总评分: 银币 + 30  金币 + 30   查看全部评分

分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
分享分享0 收藏收藏0 支持支持0 反对反对0

UID
358
注册时间
2000-12-23
帖子
896
精华
0
2#
发表于 2009-1-3 20:51:55 |只看该作者
就等过中国年再抢楼,我地刷屏代码就能派用场了
31号的调试的时候账号给封了15分钟

使用道具 举报

管理员

鹳狸猿

UID
1
注册时间
2003-2-13
帖子
6923
精华
6
3#
发表于 2009-1-3 20:55:13 |只看该作者
原帖由 judite 于 2009-1-3 20:51 发表
就等过中国年再抢楼,我地刷屏代码就能派用场了
31号的调试的时候账号给封了15分钟

明天升级数据库后,压力测试也可以抢。
引用:

宜昌网友 发表于 2010-04-12 20:48:18
道歉有用的话还要平平安安干什么

It's a long bumpy road to hell.Is that what you want, alex? Or do you wanna live?
See you on the other side.

Things of a kind come together; people of a mind fall into the same group.

使用道具 举报

海豚

禁止发言

UID
18982
注册时间
2003-1-9
帖子
10130
精华
2
4#
发表于 2009-1-3 21:31:32 |只看该作者
原帖由 kent777 于 2009-1-3 20:55 发表

明天升级数据库后,压力测试也可以抢。

有没有浩币发。。。明天哪也不去,继续等。。
看看这辈子能有多少贴

使用道具 举报

海豚

I Need One Chance

UID
30583
注册时间
2003-9-6
帖子
4385
精华
3
5#
发表于 2009-1-3 21:32:15 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
...Hope is a good thing...maybe the best of things...

使用道具 举报

海豚

I Need One Chance

UID
30583
注册时间
2003-9-6
帖子
4385
精华
3
6#
发表于 2009-1-3 21:33:45 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
...Hope is a good thing...maybe the best of things...

使用道具 举报

UID
358
注册时间
2000-12-23
帖子
896
精华
0
7#
发表于 2009-1-3 22:01:15 |只看该作者
原帖由 huazai202 于 2009-1-3 21:32 发表
楼主是搞php的啊,有前途

不是
用php只是因为php安装只要解压一个包;外加有curl模块

使用道具 举报

管理员

几凡失意仍能傲!

UID
16760
注册时间
2002-12-5
帖子
30788
精华
15
8#
发表于 2009-1-3 22:02:52 |只看该作者
楼主的ID我记下了,有PHP的事就找你了

使用道具 举报

UID
358
注册时间
2000-12-23
帖子
896
精华
0
9#
发表于 2009-1-3 22:06:11 |只看该作者
php我只是懂皮毛,一边写代码,一边查字符串怎么连接、数组怎么用、哈希怎么用

使用道具 举报

管理员

几凡失意仍能傲!

UID
16760
注册时间
2002-12-5
帖子
30788
精华
15
10#
发表于 2009-1-3 22:11:09 |只看该作者
比起不会写代码,不会查字符串,不会用数组的,不会哈希的,你就是牛人,呵呵。

使用道具 举报

版主

弱弱的海豚

UID
40507
注册时间
2004-11-18
帖子
9169
精华
21
11#
发表于 2009-1-3 22:30:48 |只看该作者
友情路过一下。
其实我本来什么都没有....


俺是多尔的豌豆.. 俺是墙根...  俺还有那乌黑亮丽的长发...



上得了厅堂,下得了厨房,写得了代码,查得出异常,杀得了木马,翻得了围墙,开得起好车,买得起新房,斗得过二奶,打得过流氓

使用道具 举报

UID
133
注册时间
2000-12-21
帖子
5198
精华
6
12#
发表于 2009-1-3 22:42:42 |只看该作者
php很强呢,用来替代perl都不成问题。而且跨平台。
俺还见过某流量拍全国15以内网站用php写的分布式文件系统...

使用道具 举报

UID
358
注册时间
2000-12-23
帖子
896
精华
0
13#
发表于 2009-1-3 22:46:49 |只看该作者
原帖由 笑傲江湖 于 2009-1-3 22:11 发表
比起不会写代码,不会查字符串,不会用数组的,不会哈希的,你就是牛人,呵呵。

有这句话心里有底了,不过不会不要怪我

使用道具 举报

UID
358
注册时间
2000-12-23
帖子
896
精华
0
14#
发表于 2009-1-3 22:48:55 |只看该作者
原帖由 erjing 于 2009-1-3 22:42 发表
php很强呢,用来替代perl都不成问题。而且跨平台。
俺还见过某流量拍全国15以内网站用php写的分布式文件系统...

那还是perl厉害罢
就看perl有数不尽的模块
php访问数据库速度超快,这一点比perl强

使用道具 举报

UID
2882
注册时间
2001-9-19
帖子
15957
精华
7
15#
发表于 2009-1-4 01:23:11 |只看该作者
观摩和学习一下。
guodl

使用道具 举报

UID
4814
注册时间
2002-2-19
帖子
4233
精华
1
16#
发表于 2009-1-4 03:19:45 |只看该作者
搜索网上,居然还有perl版本的回贴机器。不过还没有搞明白里边的代码。
海纳百川,有容乃大
-----------------------------------------
一网浏览人间事,一心读遍天下书

使用道具 举报

UID
18110
注册时间
2002-12-26
帖子
35034
精华
11
17#
发表于 2009-1-4 08:07:50 |只看该作者
瓦,会编程的,好事情
︻︼─一 ▄︻┻┳═一 ▄︻┳一 ▄︻┻═┳一 ▄︻┳-一

使用道具 举报

UID
4814
注册时间
2002-2-19
帖子
4233
精华
1
18#
发表于 2009-1-4 09:50:55 |只看该作者
原帖由 blackwhite 于 2009-1-4 03:19 发表
搜索网上,居然还有perl版本的回贴机器。不过还没有搞明白里边的代码。

现在搞定用perl回帖了。贴出来给大家贡献。原来的贴在
http://bbs.chinaunix.net/viewthread.php?tid=1020180
我修改了一下,主要是适应论坛用静态的页面,没有技术含量。代码里边需要变化的地方是fid=71,这个不用解释,这个71是那个测试论坛里边的开放测试的一个fid。sleep 35; 这个是让回一个帖子后,等待35秒,这个按照你自己的意思来修改了。当最好的方法是,修改代码,在命令行里边设定提供,大家作业了。
  1. #!/usr/bin/perl -w

  2. use LWP;
  3. use HTTP::Cookies;

  4. print "="x70;
  5. print "\n";
  6. print "* 程序名:论坛自动回贴程序\n";
  7. print "* 作 者:N3tl04d http://smboy.bokee.com\n";
  8. print "* 日 期:2007-11-23\n";
  9. print "="x70;
  10. print "\n";

  11. if($#ARGV != 2){
  12.     print "用法:$0 论坛地址 论坛已注册用户名 密码\n";
  13.     print "如:$0 http://smboy.bokee.com[/url] n3tl04d 123456\n";
  14.     exit;
  15. }

  16. my $site=shift;
  17. my $username=shift;
  18. my $password=shift;

  19. my @link;
  20. my $formhash;
  21. my @content=("我顶.灌水,哈哈","我是自动回贴的,吹吖","不错不错,好东西","哇!楼主好牛啊");#回复内容设定
  22. my $ua=new LWP::UserAgent;
  23. $ua->agent('Mozilla/5.0');
  24. $ua->cookie_jar(new HTTP::Cookies);
  25. my $test1=$ua->post( $site.'/logging.php?action=login&',
  26.                                         [
  27.                                         "referer"=>"index.php",
  28.                                         "loginfield"=>"username",
  29.                                         "username"=>$username,
  30.                                         "password"=>$password,
  31.                                         "questionid"=>"0",
  32.                                         "answer"=>"",
  33.                                         "cookietime"=>"2592000",
  34.                                         "loginmode"=>"",
  35.                                         "styleid"=>"",
  36.                                         "loginsubmit"=>"提交",
  37.                                         ]
  38.                                 );

  39. $url=$site.'/forumdisplay.php?fid=71';
  40. $res = $ua->get($url);
  41. $html=$res->content;
  42. print "获取版块数据\n";

  43. die "抓不到formhash" unless $html  =~ m{formhash=([\d\w]{8})\"?}gi;
  44. $formhash= $1;

  45. if ($res->is_success) {
  46.     my @html=split(/\n/,$html);
  47.     @link=();
  48.     for(@html){
  49.              if (m{<span id="thread_(\d+)"><a href=}){
  50.         ##if (m{<a href="viewthread\.php\?tid=(\d+)&extra=page%3D1">}){
  51.             push(@link,$1);
  52.         }
  53.     }

  54. print "挑出有用的数据 $#link 个 \n";

  55. for ($x=0;$x<=$#link;$x++){
  56.    
  57.     my $url=$site."/thread-$link[$x]-1-1.html";
  58.     print "$url\n";
  59.     my $res = $ua->get($url);
  60.     my $content=$res->content;
  61.     die "没发现贴子标题:" unless $content =~ m{<title>(.+?)\s-}gi;   
  62.     #print $res->decoded_content;
  63.     $r_num=int(rand($#content));#随机取回复内容
  64.     my $posturl=$site."/post.php?action=reply&fid=2&tid=$link[$x]&extra=page%3D1&replysubmit=yes&";
  65.     my $response=$ua->post( $posturl,
  66.     [
  67.     "formhash"=>$formhash,
  68.     "isblog"=>"",
  69.     "readperm"=>"0",
  70.     "price"=>"0",
  71.     "typeid"=>"0",
  72.     "subject"=>'Re:回复',
  73.     "iconid"=>"0",
  74.     "parseurloff"=>"0",
  75.     "smileyoff"=>"0",
  76.     "bbcodeoff"=>"0",
  77.     "usesig"=>"1",
  78.     "emailnotify"=>"0",
  79.     "message"=>$content[$r_num],
  80.     "toxiaban"=>"",
  81.     "wysiwyg"=>"1",
  82.     ]
  83.     );
  84.     if ($response->status_line eq '302 Found' || $response->status_line eq '200 OK') {
  85.         print "贴子\"$1\"回贴成功!\n";
  86.     }
  87.     print "等待35秒\n";
  88.     sleep 35;
  89. }
  90. }
复制代码

[ 本帖最后由 blackwhite 于 2009-1-4 10:00 编辑 ]
已有 1 人评分银币 金币 收起 理由
kent777 + 30 + 30 我很赞同

总评分: 银币 + 30  金币 + 30   查看全部评分

海纳百川,有容乃大
-----------------------------------------
一网浏览人间事,一心读遍天下书

使用道具 举报

您需要登录后才可以回帖 登录 | 关闭注册

2021 , Hello Everyone ^_^ ^_^ ^_^