扫描局域网中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,并尝试解析 ...
随机推荐
- CMDB初步了解
本节内容 浅谈ITIL CMDB介绍 Django自定义用户认证 Restful 规范 资产管理功能开发 浅谈ITIL TIL即IT基础架构库(Information Technology Infra ...
- mysql数据库表插入单条数据/批量插入数据
1.创建表格 reate table trade( id int(4) not null primary key auto_increment, product varchar(30) null, p ...
- Python3+Selenium3自动化测试-(二)
python3 元素定位和操作方法总结 # coding=utf-8 ''' #8种元素定位方法 find_element_by_id() find_element_by_name() find_el ...
- Android图片加载框架Picasso最全使用教程1
Picasso介绍 Picasso是Square公司开源的一个Android图形缓存库 A powerful image downloading and caching library for And ...
- HDU2571:命运(简单dp)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2571 没什么好说的,不过要处理好边界. 代码如下: #include <iostream> # ...
- appium之Context切换
原文地址http://blog.csdn.net/Mandypan/article/details/51396302 Context切换driver.getContextHandles();//获取页 ...
- python16_day17【Django_session、ajax】
一.Session 1.settings.py SESSION_ENGINE = 'django.contrib.sessions.backends.db' # 引擎(默认) SESSION_COOK ...
- ubuntu服务器无法运行chromedriver解决方法(转)
无头浏览器 sudo apt-get install Xvfb sudo pip install pyvirtualdisplay from pyvirtualdisplay import Displ ...
- 和为定值的m个数
和为定值的m个数 np 问题(时间复杂度o(2**n)) code1: 暴力递归 解决 只有正数的情况 class Solution { private List<List<Integer ...
- 使用GoogleCode作SVN服务器的一些问题及解决办法
1.首先最主要的一个问题,就是注册GoogleCode和安装SVN工具. 网上教程很多,不一一赘述.http://www.th7.cn/Program/net/201305/136059.shtml ...