扫描局域网中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,并尝试解析 ...
随机推荐
- Hibernate 的查询
1. Hibernate 框架的查询方式 唯一标识OID的检索方式: session.get(对象.class, OID) 对象导航的方式; HQL 检索方式; QBC 检索方式; SQL 检索方式 ...
- Java 语言基础之函数
函数的定义: 函数就是定义在类中的具有特定功能的一段独立小程序 函数也称为方法 函数定义格式: 修饰符 返回值类型 函数名(参数类型 形式参数1, 参数类型 形式参数2,...) { 执行语句; re ...
- mongoose连接数据库的两种形式
不废话,直接 ---------------------- .如果你的应用程序只使用一个数据库, 应该使用 mongoose.connect. 如果您需要创建额外的连接,使用 mongoose.cre ...
- 解决: ./netapp.bin: error while loading shared libraries: libcaffe.so.1.0.0: cannot open shared object file: No such file or directory 运行时报错(caffe)
caffe安装好后lib没有配置到/usr/lib或/usr/local/lib中,需手动配置: export LD_LIBRARY_PATH=/path_to_your_caffe/build/li ...
- CNI Proposal 摘要
原文连接:https://github.com/containernetworking/cni/blob/master/SPEC.md General consideration CNI的想法是先让容 ...
- python基于yield实现协程
def f1(): print(11) yield print(22) yield print(33) def f2(): print(55) yield print(66) yield print( ...
- 007-Centos 7.x 安装 Mysql 5.7.13
1. 下载mysql的repo源 CentOS 7.2的yum源中默认没有mysql,要先下载mysql的repo源 wget http://repo.mysql.com/mysql57-commun ...
- Hadoop的IO操作
Hadoop的API官网:http://hadoop.apache.org/common/docs/current/api/index.html 相关的包 org.apache.hadoop.io ...
- Java并发(1):synchronized
虽然多线程编程极大地提高了效率,但是也会带来一定的隐患.比如说两个线程同时往一个数据库表中插入不重复的数据,就可能会导致数据库中插入了相同的数据.今天我们就来一起讨论下线程安全问题,以及Java中提供 ...
- 杭电1023Train Problem II
地址:http://acm.hdu.edu.cn/showproblem.php?pid=1023 题目: Train Problem II Time Limit: 2000/1000 MS (Jav ...