扫描局域网中Gogs服务器(ruby)
scanGogs.rb
#!/usr/bin/env ruby
require 'net/http'
require 'thread'
require 'english' # config
CONFIG_IPDOMAIN = '30.96.68.'.freeze
CONFIG_RANGE = (2..254)
CONFIG_URITEMPLATE = 'http://%s:3000/user/login'.freeze
CONFIG_READ_TIMEOUT = 30
CONFIG_HIDE_ERROR = true # 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)
l = []
l << TTY_MD[tty_md] if tty_md
l << TTY_FG[tty_fg] if tty_fg
l << TTY_BG[tty_bg] if tty_bg
if l.size > 0
m = l.join(';')
"\033[#{m}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 httpcode_style(msg)
tty_msg(msg, tty_fg: :White, tty_bg: :Blue)
end def error_style(msg)
tty_msg(msg, tty_fg: :White, tty_bg: :Red)
end # timeout
module Net
# initialize timeout
class HTTP
alias old_initialize initialize def initialize(*args)
old_initialize(*args)
@read_timeout = CONFIG_READ_TIMEOUT
end
end
end # main
puts note_style('Working...')
success_list = []
httperr_list = []
threads = []
CONFIG_RANGE.each do |n|
threads << Thread.new do
s = CONFIG_IPDOMAIN + String(n)
uri = URI(format(CONFIG_URITEMPLATE, s))
begin
res = Net::HTTP.get_response(uri)
if res.is_a?(Net::HTTPSuccess)
s << "\t" << yes_style('**YES**')
success_list << uri.to_s
else
httperr = "\t#{httpcode_style(res.code)} #{res.message}\n"
s << httperr
httperr_list << (uri.to_s + httperr)
end
puts s
rescue
unless CONFIG_HIDE_ERROR
s << "\t#{error_style('error')} #{$ERROR_INFO}\n"
puts s
end
end
end
end threads.each(&:join)
puts "\n" << note_style("HttpErr Result: #{httperr_list.size}")
httperr_list.each { |s| puts s }
puts "\n" << note_style("Success Result: #{success_list.size}")
success_list.each { |s| puts s }
扫描局域网中Gogs服务器(ruby)的更多相关文章
- Oracle 局域网布置数据库服务器,客户端连接提示TNS:无监听器的解决实现
		Oracle布置在局域网中的服务器的时候,用本地PL SQL 链接没有丝毫的问题. 但是,如果用远程客户端的PL SQL 链接的时候却出现了“TNS:无监听器”的问题. 首先,就是进行了服务器端的监听 ... 
- 在局域网中搭建自己的gis服务器
		在局域网中搭建自己的gis服务器 需求 在客户的B/S应用系统中使用电子地图.该系统只可运行于内部网中. 分析 由于系统中的电子地图只能运行于局域网中所以不能采用googl ... 
- 使用ARP欺骗, 截取局域网中任意一台机器的网页请求,破解用户名密码等信息
		ARP欺骗的作用 当你在网吧玩,发现有人玩LOL大吵大闹, 用ARP欺骗把他踢下线吧 当你在咖啡厅看上某一个看书的妹纸,又不好意思开口要微信号, 用arp欺骗,不知不觉获取到她的微信号和聊天记录,吓一 ... 
- 组件局域网中的无集线器、Windows XP、Windows 7、Windows 8的对等网
		为什么要用对等网? 答:对等网采用分散管理的方式,网络中的每台计算机既作为客户机又可作为服务器来工作,每个用户都管理自己机器上的资源. 组建局域网中无集线器的对等网 组建局域网中Windows XP ... 
- (转)怎样查看局域网中自己的IP地址和其他电脑的IP地址?
		开始菜单->运行->打cmd,回车->再弹出的黑框里打ipconfig -all,回车显示的IP Address就是你的ip地址看局域网的电脑的ip用软件比较方便,比如p2p终结者, ... 
- win10如何在局域网中设置一台电脑的固定ip地址
		在工作和生活中,经常要遇到远程访问一台电脑的情况,但是在局域网中如果不进行设置,通常一台电脑的ip是自动生成的,,没有固定,这就导致下次访问这个地址时,不能正常访问,下面就交大家如何在win10系统中 ... 
- android设备局域网中快速搜索之cling方式
		cling方式就像pc端windows局域网工作组刷新显示一样,原来用过扫描ip地址的方式,可以使用就是有点慢,还有一种自己加入组广播,通过发送组广播的方式. android设备局域网中快速搜索之 ... 
- Python网络编程中的服务器架构(负载均衡、单线程、多线程和同步、异步等)
		这篇文章主要介绍服务器架构. 网络服务需要面对两个挑战. 第一个问题是核心挑战,要编写出能够正确处理请求并构造合适响应的代码. 第二个挑战是如何将网络代码部署到随系统自动启动的Windows服务或者是 ... 
- linux下快速列出局域网中所有主机名(计算机名)的脚本
		最近有列出局域网中所有主机名的需求(SMB协议里的),但是findsmb命令总是列不全,搜了搜网上也没什么现成的解决方案,于是自己写了个python脚本 脚本会扫描局域网arp表中所有ip,并尝试解析 ... 
随机推荐
- module使用
			官方文档:http://modules.sourceforge.net/ 加载 module load 卸载 module unload 查看已加载 module list 查看可用 module a ... 
- hadoop笔记 基础 归档
			核心:分布式存储和分布式计算 闲话: 底层基于socket通信 NIO——java异步io,不阻塞,不等待 bt——p2p软件(点对点传输,每个人既是上传者又是下载者.但是会占用大量网络带宽,所以很多 ... 
- ubuntu14.04 编译安装CPU版caffe
			本文,试图中一个干净的ubuntu14.04机器上安装caffe的cpu版本. http://blog.csdn.net/sinat_35188997/article/details/735304 ... 
- SSD(Single Shot MultiBox Detector)二读paper
			SSD KeyWords:Real-time Object Detection; Convolutional Neural Network Introduction 目前最尖端(State-of-ar ... 
- ptyhon从入门到放弃之操作系统基础
			*2.操作系统操作系统基础1.什么是操作系统操作系统就是一个协调.管理和控制计算机硬件和软件的控制程序.2.为何要有操作系统现代的计算机系统主要是由一个或者多个处理器,主存,硬盘,键盘,鼠标,显示器, ... 
- 第一课Linux系统安装知识(1)
			在做linux下C\C++开发,首先得安装个Linux系统,这节课记录相关系统安装的知识,本文记录虚拟机安装部分. 在linux系统中,现在一般生手都用桌面版,比如比较多人使用的是 ... 
- 微信小程序组件progress
			基础内容progress:官方文档 Demo Code: Page({ data:{ percent:0 }, onReady:function(){ this.percentAdd(); }, pe ... 
- CodeForces - 86D Powerful array (莫队)
			题意:查询的是区间内每个数出现次数的平方×该数值的和. 分析:虽然是道莫队裸体,但是姿势不对就会超时.答案可能爆int,所以要开long long 存答案.一开始的维护操作,我先在res里减掉了a[p ... 
- tmux命令
			tmux 新建一个会话,进入tmux tmux new -s 'main' 新建一个会话'main',进入tmux' tmux a -t 'main' 进入tmux会话'main' exit 退出当前 ... 
- 单例模式及getInstance()的用法
			一般在单例模式下使用.getInstance()创建对象:但并不是所有有私有构造方法,对外通过getInstance方法提供 实例的情况就是单例模式. 注:单例模式:一个类有且只有一个实例.1,一个私 ... 
