ruby版本的discuz自动注册机

概要:
为了让别人以为你discuz网站的注册用户比较多,你可能需要注册大量虚假用户来伪造discuz网站的人气,如果手动地注册,那效率肯定会很低,势必需要一个工具来帮我们自动化地完成这个工作,本人就用ruby写了这样一个自动为discuz注册用户的工具.

前提:
1. 安装好了ruby和watir,可参照 http://watir.com/installation/, 和我写的另外一篇文章 ruby watir安装
2. IE能够正常运行

限制:
不能用于要填验证码的网站,需要在后台先把需要验证码的配置设为否。

注册步骤:
1, disable IE cookies, 使cookie无效,参照 enable cookie, 注意:这篇文章讲的是怎么enable cookie,

2, 配置,
A, register_url 为注册的URL, 如 @register_url = “http://www.abc.cn/bbs/register.php”;
B, account_file_name 为保存注册的账号的用户名,密码等信息, 如:@account_file_name = “abc.cn”
C, account_num为你要注册的人数 如 @account_num = 2 表示注册2个人
D, $LOAD_PATH为你安装watir的库文件目录, 如 $LOAD_PATH << ‘C:/ruby/lib/ruby/gems/1.8/gems/commonwatir-1.6.5/lib’

3,创建名为 [account_file_name].csv文件,如: abc.cn.csv, 它和运行脚本在同一个目录下

4, 运行脚本

代码如下:第一次写ruby,写得不对的地方,希望大家指正。[拷贝下面的代码保存为一个以 .rb 为后缀的文件,运行即可, 本人只在php版本的discuz 7.2上测试过,其它版本如有问题的话,欢迎留言]

$LOAD_PATH << 'C:/ruby/lib/ruby/gems/1.8/gems/commonwatir-1.6.5/lib'
require 'watir'
require 'CSV'
class DiscuzAutoRegister
    def initialize
        @register_url = "http://www.abc.cn/bbs/register.php";
        @account_file_name = "abc.cn"
        @account_num = 2
        @b
    end
    def randString( len )
        chars = ("a".."z").to_a + ("0".."9").to_a
        newpass = " "
        1.upto(len) { |i| newpass << chars[rand(chars.size-1)] }
        return newpass
    end
    def logAccount(user_name, password, email, register_time)
        new_array = []
        temp_array = []
        reader = CSV.open(@account_file_name + '.csv', 'r') do |row|
          (0...row.nitems).each do |item|
            temp_array.push(row[item].data)
          end
          new_array << temp_array
          temp_array = []
        end
        new_items = [user_name, password, email, register_time]
        new_array << new_items
        CSV.open(@account_file_name + '.csv','w') do |writer|
            new_array.each do |row|
                writer << row
            end
            writer.close
        end
    end
    def register()
        user_name = randString(6)
        password = randString(6);
        email = user_name + "@anything.com";
        @b.goto(@register_url)
        @b.text_field(:id, "username").set(user_name)
        @b.text_field(:id, "password").set(password)
        @b.text_field(:id, "password2").set(password)
        @b.text_field(:id, "email").set(email)
        @b.form(:id, "registerform").submit
        t = Time.now
        register_time = t.strftime("%Y-%m-%d %H:%M:%S")
        logAccount(user_name, password, email, register_time)
    end
    def run
      if @account_num > 0
          @b = Watir::Browser.new
          i = 0
          while i < @account_num
              i = i+1
              register()
          end
      end
    end
end
discuzAutoRegister = DiscuzAutoRegister.new
discuzAutoRegister.run

97 thoughts on “ruby版本的discuz自动注册机”

Comments are closed.