標籤:
scanGogs.rb
#!/usr/bin/env rubyrequire ‘open-uri‘require ‘thread‘require ‘english‘# configsCONFIG_IPDOMAIN = ‘30.93.41.‘CONFIG_RANGE = (2..254)CONFIG_URITEMPLATE = ‘http://%s:3000/user/login‘# ttyTTY_FG = { Black: 30, Red: 31, Green: 32, Yellow: 33, Blue: 34, Magenta: 35, Cyan: 36, White: 37 }.freezeTTY_BG = { Black: 40, Red: 41, Green: 42, Yellow: 43, Blue: 44, Magenta: 45, Cyan: 46, White: 47 }.freezeTTY_MD = { Reset: 0, Bold: 1, Italics: 3, Underlined: 4 }.freezedef tty_msg(msg, tty_fg: nil, tty_bg: nil, tty_md: nil) if STDOUT.tty? || STDIN.tty? || STDERR.tty? "\033[#{TTY_MD[tty_md]};#{TTY_FG[tty_fg]};#{TTY_BG[tty_bg]}m#{msg}\033[0m" else msg endend# tty stylesdef note_style(msg) tty_msg(msg, tty_fg: :Yellow, tty_md: :Underlined)enddef yes_style(msg) tty_msg(msg, tty_fg: :Black, tty_md: :Bold, tty_bg: :Green)enddef error_style(msg) tty_msg(msg, tty_fg: :White, tty_bg: :Red)end# mainputs note_style(‘Working...‘)success_list = []threads = []CONFIG_RANGE.each do |n| threads << Thread.new do s = CONFIG_IPDOMAIN + String(n) uri = format(CONFIG_URITEMPLATE, s) begin open(uri) s << yes_style("\t**YES**") success_list << uri rescue s << error_style("\terror") << " #{$ERROR_INFO}\n" end puts s endendthreads.each(&:join)puts note_style(‘Result:‘)success_list.each { |s| puts s }
掃描區域網路中Gogs伺服器指令碼(ruby)