• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

scanGogs.rb

 1 #!/usr/bin/env ruby
 2 require \'net/http\'
 3 require \'thread\'
 4 require \'english\'
 5 
 6 # config
 7 CONFIG_IPDOMAIN = \'30.96.68.\'.freeze
 8 CONFIG_RANGE = (2..254)
 9 CONFIG_URITEMPLATE = \'http://%s:3000/user/login\'.freeze
10 CONFIG_READ_TIMEOUT = 30
11 CONFIG_HIDE_ERROR = true
12 
13 # tty
14 TTY_FG = { Black: 30, Red: 31, Green: 32, Yellow: 33, Blue: 34,
15            Magenta: 35, Cyan: 36, White: 37 }.freeze
16 TTY_BG = { Black: 40, Red: 41, Green: 42, Yellow: 43, Blue: 44,
17            Magenta: 45, Cyan: 46, White: 47 }.freeze
18 TTY_MD = { Reset: 0, Bold: 1, Italics: 3, Underlined: 4 }.freeze
19 
20 def tty_msg(msg, tty_fg: nil, tty_bg: nil, tty_md: nil)
21   l = []
22   l << TTY_MD[tty_md] if tty_md
23   l << TTY_FG[tty_fg] if tty_fg
24   l << TTY_BG[tty_bg] if tty_bg
25   if l.size > 0
26     m = l.join(\';\')
27     "\033[#{m}m#{msg}\033[0m"
28   else
29     msg
30   end
31 end
32 
33 # tty styles
34 def note_style(msg)
35   tty_msg(msg, tty_fg: :Yellow, tty_md: :Underlined)
36 end
37 
38 def yes_style(msg)
39   tty_msg(msg, tty_fg: :Black, tty_md: :Bold, tty_bg: :Green)
40 end
41 
42 def httpcode_style(msg)
43   tty_msg(msg, tty_fg: :White, tty_bg: :Blue)
44 end
45 
46 def error_style(msg)
47   tty_msg(msg, tty_fg: :White, tty_bg: :Red)
48 end
49 
50 # timeout
51 module Net
52   # initialize timeout
53   class HTTP
54     alias old_initialize initialize
55 
56     def initialize(*args)
57       old_initialize(*args)
58       @read_timeout = CONFIG_READ_TIMEOUT
59     end
60   end
61 end
62 
63 # main
64 puts note_style(\'Working...\')
65 success_list = []
66 httperr_list = []
67 threads = []
68 CONFIG_RANGE.each do |n|
69   threads << Thread.new do
70     s = CONFIG_IPDOMAIN + String(n)
71     uri = URI(format(CONFIG_URITEMPLATE, s))
72     begin
73       res = Net::HTTP.get_response(uri)
74       if res.is_a?(Net::HTTPSuccess)
75         s << "\t" << yes_style(\'**YES**\')
76         success_list << uri.to_s
77       else
78         httperr = "\t#{httpcode_style(res.code)} #{res.message}\n"
79         s << httperr
80         httperr_list << (uri.to_s + httperr)
81       end
82       puts s
83     rescue
84       unless CONFIG_HIDE_ERROR
85         s << "\t#{error_style(\'error\')} #{$ERROR_INFO}\n"
86         puts s
87       end
88     end
89   end
90 end
91 
92 threads.each(&:join)
93 puts "\n" << note_style("HttpErr Result: #{httperr_list.size}")
94 httperr_list.each { |s| puts s }
95 puts "\n" << note_style("Success Result: #{success_list.size}")
96 success_list.each { |s| puts s }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ruby中Regexp用法发布时间:2022-07-13
下一篇:
【转载】每个程序员都应该学习使用Python或Ruby发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap