如扫描192.168.1.100-200之间所有开启80或22或8808端口的服务器,并把结果输出到test.log文件中。要求日志文件格式包括序列号1、2、3···,服务器IP,开启的端口号,扫描时间。求大神用shell脚本帮忙实现一下,多谢
可以是只扫描一个端口的脚本,比如只扫描80
这问题我是没太看明白 ,按我理解的:
#!/bin/bash
port="80/tcp"
for i in seq 1 1
do
Time=nmap 192.168.1.$i | grep Starting | awk '{print $8,$9}'
echo "1:Time:$Time" >> test.log
Ip=nmap 192.168.1.$i | grep report |awk '{print $5}'
echo "2: IP:$Ip" >> test.log
Rtime=nmap 192.168.1.$i | grep seconds | awk '{print $11}'
echo "3: Rtime:$Rtime"
nmap 192.168.1.$i | grep $port
if [ $? = 0 ]
then
echo "3: $port " >> test.log
echo " "
echo "============================================== "
else
echo "'80' is not exist" >>test.log
echo " "
echo "============================================== "
fi
done
把 seq 后面改成你需要的ip地址范围就可以了
scanning time:2016-08-17 14:54:57
.
.
9.IP: 10.12.9.181
open:80
10.IP: 10.12.9.188
open:80
11.IP: 10.12.9.189
open:80
12.IP: 10.12.9.190
open:80
13.IP: 10.12.9.193
open:80
14.IP: 10.12.9.194
open:80
.
.
.
这个是我自己弄得,不过是通过对原始的日志进行操作修改来的结果,想求一个能直接生成这种日志的脚本。。。