码迷,mamicode.com
首页 > 其他好文 > 详细

扫描局域网中Gogs服务器脚本(ruby)

时间:2016-09-06 12:10:16      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:

scanGogs.rb

#!/usr/bin/env ruby
require open-uri
require thread
require english

# configs
CONFIG_IPDOMAIN = 30.93.41.
CONFIG_RANGE = (2..254)
CONFIG_URITEMPLATE = http://%s:3000/user/login

# tty
TTY_FG = { Black: 30, Red: 31, Green: 32, Yellow: 33, Blue: 34,
           Magenta: 35, Cyan: 36, White: 37 }.freeze
TTY_BG = { Black: 40, Red: 41, Green: 42, Yellow: 43, Blue: 44,
           Magenta: 45, Cyan: 46, White: 47 }.freeze
TTY_MD = { Reset: 0, Bold: 1, Italics: 3, Underlined: 4 }.freeze

def 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
  end
end

# tty styles
def note_style(msg)
  tty_msg(msg, tty_fg: :Yellow, tty_md: :Underlined)
end

def yes_style(msg)
  tty_msg(msg, tty_fg: :Black, tty_md: :Bold, tty_bg: :Green)
end

def error_style(msg)
  tty_msg(msg, tty_fg: :White, tty_bg: :Red)
end

# main
puts 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
  end
end

threads.each(&:join)
puts note_style(Result:)
success_list.each { |s| puts s }

 

扫描局域网中Gogs服务器脚本(ruby)

标签:

原文地址:http://www.cnblogs.com/Bob-wei/p/5845053.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!