前言
在linux下使用shell脚本来查找局域网内开启22端口的主机,可修改具体的参数以达到测试其他端口是否开放。
另:请勿用于非法途径,遵守法律法规
实现步骤
运行环境为:centos7
1. 初始化环境
脚本使用nc作为端口探测工具,所以需要确保nc已正常安装。
1
2
3
4
5
6
7
8
9
10echo "检查初始化环境..." rpm -qa | grep nmap-ncat if [ $? -eq 0 ]; then echo "已安装NC" else echo "未安装NC,现在开始安装..." yum install -y nc wait fi
等待检测安装完成,为保证脚本正常运行再次确认nc是否安装成功,成功才向下执行。
1
2
3
4
5
6pm -qa | grep nmap-ncat if [ $? != 0 ]; then echo "初始化失败,请手动安装nc" exit fi
2. 确认本机IP地址
通过awk进行过滤出本机掩码是24位的IP地址,可修改对应变量以达到支持兼容非24位的IP地址及IP段,这里默认检测掩码为24位的IP地址。
1
2
3
4
5
6
7
8
9
10
11
12
13
14echo "开始查找本机IP地址与网关..." ret_ip=`ip a | grep inet | awk -F ' ' '{print $2}'` gateway=24 for ip in $ret_ip; do tmp_ip=`echo $ip | awk -F '/' '{print $1}'` tmp_gateway=`echo $ip | awk -F '/' '{print $2}'` if test $[tmp_gateway] -eq $[gateway] then echo "localhost ip:$tmp_ip,gateway:$tmp_gateway" break fi done
3. 查找局域网内主机
查找IP地址对应的的局域网内所有主机
echo “开始查找局域网内主机…”
lan_ip=echo $tmp_ip | awk -F '.' '{print $1 "." $2 "." $3 "." }'
for (( i = 1; i < 255; i++ )); do
{
nc -zw2
l
a
n
i
p
{lan_ip}
lanipi 22
if [
?
−
e
q
0
]
;
t
h
e
n
e
c
h
o
"
f
i
n
d
h
o
s
t
:
? -eq 0 ]; then echo "find host:
?−eq0];thenecho"findhost:{lan_ip}$i"
fi
} &
done
wait
echo “查找完毕…”
4. 拓展
可增加参数和建立文件保存标记来确认是否需要保存查找结果为文件。
5. 完整实现代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55#!/bin/bash # author:cc # date:2020.8.24 # 发现局域网内22端口开启主机 # 端口检测使用nc echo "检查初始化环境..." rpm -qa | grep nmap-ncat if [ $? -eq 0 ]; then echo "已安装NC" else echo "未安装NC,现在开始安装..." yum install -y nc wait fi rpm -qa | grep nmap-ncat if [ $? != 0 ]; then echo "初始化失败,请手动安装nc" exit fi case $1 in -w ) echo $2 ;; esac echo "开始查找本机IP地址与网关..." ret_ip=`ip a | grep inet | awk -F ' ' '{print $2}'` gateway=24 for ip in $ret_ip; do tmp_ip=`echo $ip | awk -F '/' '{print $1}'` tmp_gateway=`echo $ip | awk -F '/' '{print $2}'` if test $[tmp_gateway] -eq $[gateway] then echo "localhost ip:$tmp_ip,gateway:$tmp_gateway" break fi done echo "开始查找局域网内主机..." lan_ip=`echo $tmp_ip | awk -F '.' '{print $1 "." $2 "." $3 "." }'` for (( i = 1; i < 255; i++ )); do { nc -zw2 ${lan_ip}$i 22 if [ $? -eq 0 ]; then echo "find host:${lan_ip}$i" fi } & done wait echo "查找完毕..."
最后
以上就是简单胡萝卜最近收集整理的关于linux安全-使用shell脚本一键查找局域网内开启22端口的主机前言的全部内容,更多相关linux安全-使用shell脚本一键查找局域网内开启22端口内容请搜索靠谱客的其他文章。
发表评论 取消回复