yptools 1.1.0 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/yptools/help/yp_help.rb +9 -1
- data/lib/yptools/portscan/yp_portscan.rb +50 -0
- data/lib/yptools/scanlocalips/yp_scanlocalips.rb +44 -0
- data/lib/yptools.rb +21 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8408e5e1a3c11b120fb7f35959032380a30e25363b87b24ed8db7aeed71682e3
|
4
|
+
data.tar.gz: f13a54118992f2b3629895a2cf48b82ec401c66d8eb5e351977d5f07aca1a00a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e49cce07a4d0bfafc800d8cfa3d65a1ea826732bd3f0e8710e987d99f71bc97c6c35268096a6383ef1118ad4fe1861f3305800fc6e086055d1a0ee4fc30403f
|
7
|
+
data.tar.gz: afef0a6c693d3ba8c0ed26838a5364c5d3a0b7837adbe9e3c60fab27b7f2e4f411f9c74b11dee3e96cab81003840d8d4de6b7e80f8d8cb5212bd16ac05d2e525
|
data/lib/yptools/help/yp_help.rb
CHANGED
@@ -3,11 +3,13 @@ class YPHelp
|
|
3
3
|
def self.message
|
4
4
|
puts %q{
|
5
5
|
|
6
|
+
🤖🤖🤖 - 智能聊天、绘画(OpenAI)
|
6
7
|
chatgpt: use [yptools chatgpt] 创建会话列表与 chatgpt 聊天,会记录上下内容(科学上网)
|
7
8
|
[yptools chatgpt ...] 快速与 chatgpt 沟通,不会记录上下内容
|
8
9
|
|
9
10
|
openai: use [yptools openaiimg ...] 根据文本描述生成图像(eg: yptools openaiimg '老虎和狮子大战' )
|
10
11
|
|
12
|
+
🚀🚀🚀 - iOS开发者(IOS Developer)
|
11
13
|
autocre: use [yptools autocre ...] 自动化工具命令
|
12
14
|
use [yptools autocre -objc ...] 根据 json 自动创建 Objective-C 数据库操作文件 .h|.m 文件。(依赖三方库 FMDB )
|
13
15
|
use [yptools autocre -init] 构建数据库操作文件的json模板
|
@@ -25,8 +27,14 @@ class YPHelp
|
|
25
27
|
xpj: use [yptools xpj ...] use xcodeproj api
|
26
28
|
use [yptools xpj check] 检查当前目录项目文件是否存在引用的问题
|
27
29
|
|
28
|
-
|
30
|
+
🤡🤡🤡 - hacker
|
31
|
+
portscan: use [yptools portscan <ip地址或域名> [<端口范围>]] 扫描指定 IP 端口是否开放
|
29
32
|
|
33
|
+
scanlocalips: use [yptools scanlocalips] 扫描本地局域网下所有 IP
|
34
|
+
|
35
|
+
💩💩💩 - 帮助(help)
|
36
|
+
help: use [yptools help] 查看帮助
|
37
|
+
|
30
38
|
}
|
31
39
|
end
|
32
40
|
|
@@ -0,0 +1,50 @@
|
|
1
|
+
class YPPortScan
|
2
|
+
def self.portscan(port, range)
|
3
|
+
script = %Q(
|
4
|
+
#!/bin/bash
|
5
|
+
|
6
|
+
if [ -n "#{range}" ]; then
|
7
|
+
all_port="#{range}"
|
8
|
+
else
|
9
|
+
all_port="1-65535"
|
10
|
+
fi
|
11
|
+
|
12
|
+
port_range=(${all_port//-/ })
|
13
|
+
timeout=0.02
|
14
|
+
ip_address=#{port}
|
15
|
+
|
16
|
+
port_range+=(#{range})
|
17
|
+
|
18
|
+
echo "正在扫描 ${ip_address} 的端口 ${port_range[0]} 到 ${port_range[1]}..."
|
19
|
+
echo ${port_range[1]}
|
20
|
+
|
21
|
+
open_ports=()
|
22
|
+
closed_ports=()
|
23
|
+
|
24
|
+
for ((port = ${port_range[0]}; port <= ${port_range[1]}; port++)); do
|
25
|
+
(echo >/dev/tcp/${ip_address}/${port}) >/dev/null 2>&1 &
|
26
|
+
pid=$!
|
27
|
+
(
|
28
|
+
sleep ${timeout}
|
29
|
+
kill ${pid} >/dev/null 2>&1
|
30
|
+
) &
|
31
|
+
timer=$!
|
32
|
+
if wait ${pid} 2>/dev/null; then
|
33
|
+
echo "\\033[32m${port} 是开放的\\033[0m"
|
34
|
+
open_ports+=($port)
|
35
|
+
else
|
36
|
+
echo "\\033[31m${port} 是关闭的\\033[0m"
|
37
|
+
closed_ports+=($port)
|
38
|
+
fi
|
39
|
+
kill ${timer} >/dev/null 2>&1
|
40
|
+
done
|
41
|
+
|
42
|
+
allCount=$((${#open_ports[@]} + ${#closed_ports[@]}))
|
43
|
+
|
44
|
+
echo ${allCount} "个端口扫描完成。"
|
45
|
+
echo "共有 ${#open_ports[@]} 个端口是开放的,${#closed_ports[@]} 个端口是关闭的。"
|
46
|
+
echo "开放的端口: " "\\033[32m${open_ports[@]}\\033[0m"
|
47
|
+
)
|
48
|
+
system(script)
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'socket'
|
2
|
+
|
3
|
+
class YPScanLocalIPs
|
4
|
+
|
5
|
+
def self.scanlocalips()
|
6
|
+
self.scan_local_ips
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.ping(ip)
|
10
|
+
IO.popen("ping -c 1 -t 1 #{ip} > /dev/null 2>&1") { |f| f.close }
|
11
|
+
if $?.exitstatus == 0
|
12
|
+
puts ip
|
13
|
+
elsif $?.exitstatus == 2
|
14
|
+
# No route to host
|
15
|
+
elsif $?.exitstatus == 68
|
16
|
+
# Name or service not known
|
17
|
+
end
|
18
|
+
rescue => e
|
19
|
+
# handle exception
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.scan_local_ips
|
23
|
+
# 获取本机IP地址前三位,例如 192.168.0
|
24
|
+
prefix = Socket.ip_address_list.find { |intf| intf.ipv4? && !intf.ipv4_loopback? }.ip_address.split('.')[0, 3].join('.') + '.'
|
25
|
+
threads = []
|
26
|
+
|
27
|
+
# 遍历所有可能的IP地址
|
28
|
+
(1..255).each do |i|
|
29
|
+
threads << Thread.new(prefix, i) do |pr, j|
|
30
|
+
# 组合出IP地址,例如 192.168.0.1
|
31
|
+
ip = "#{pr}#{j}"
|
32
|
+
# 使用ping命令测试是否能够ping通,并手动关闭文件句柄
|
33
|
+
ping(ip)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
# 等待所有线程执行完毕
|
38
|
+
threads.each(&:join)
|
39
|
+
|
40
|
+
# 输出所有结果
|
41
|
+
results = threads.map(&:value).compact
|
42
|
+
results.each { |ip| puts ip + "🚀" }
|
43
|
+
end
|
44
|
+
end
|
data/lib/yptools.rb
CHANGED
@@ -11,6 +11,8 @@ require_relative 'yptools/package/yp_package'
|
|
11
11
|
require_relative 'yptools/autocre/yp_autocre'
|
12
12
|
require_relative 'yptools/autocre/yp_autoinit'
|
13
13
|
require_relative 'yptools/chatai/yp_chatai'
|
14
|
+
require_relative 'yptools/portscan/yp_portscan'
|
15
|
+
require_relative 'yptools/scanlocalips/yp_scanlocalips'
|
14
16
|
|
15
17
|
class YPTools
|
16
18
|
|
@@ -102,6 +104,15 @@ class YPTools
|
|
102
104
|
yp_log_fail "'yptools xpj ..' 参数缺失"
|
103
105
|
self.help
|
104
106
|
end
|
107
|
+
when 'portscan'
|
108
|
+
if argvs.size > 1
|
109
|
+
self.portscan argvs
|
110
|
+
else
|
111
|
+
yp_log_fail "'yptools portscan ..' 参数缺失"
|
112
|
+
self.help
|
113
|
+
end
|
114
|
+
when 'scanlocalips'
|
115
|
+
self.scanlocalips
|
105
116
|
else
|
106
117
|
self.help
|
107
118
|
end
|
@@ -158,6 +169,16 @@ class YPTools
|
|
158
169
|
YPChatAI.openaiimg(message)
|
159
170
|
end
|
160
171
|
|
172
|
+
def self.portscan(argvs)
|
173
|
+
port = argvs[1]
|
174
|
+
range = argvs[2]
|
175
|
+
YPPortScan.portscan(port,range)
|
176
|
+
end
|
177
|
+
|
178
|
+
def self.scanlocalips()
|
179
|
+
YPScanLocalIPs.scanlocalips()
|
180
|
+
end
|
181
|
+
|
161
182
|
end
|
162
183
|
|
163
184
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yptools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- chenghengsheng
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-03-
|
11
|
+
date: 2023-03-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -141,6 +141,8 @@ files:
|
|
141
141
|
- lib/yptools/log/yp_log.rb
|
142
142
|
- lib/yptools/mgc/yp_makegarbagecode.rb
|
143
143
|
- lib/yptools/package/yp_package.rb
|
144
|
+
- lib/yptools/portscan/yp_portscan.rb
|
145
|
+
- lib/yptools/scanlocalips/yp_scanlocalips.rb
|
144
146
|
- lib/yptools/update/yp_update.rb
|
145
147
|
- lib/yptools/xcodeproj/yp_xcodeproj.rb
|
146
148
|
homepage: https://github.com/HansenCCC/YPTools.git
|