欢迎光临
我们一直在努力

NMAP扫描指定的网段端口是否可用

概述

由于一些情况需要扫描指定IP网段及指定端口,故写出基于NMAP的SHELL脚本。

#!/bin/bash
#NMAP扫描指定的网段及端口是否存活
#By: admin@ym68.cc
#设置IP网段
Ip_Domain='192.144.238.1-254'
#IP地址的网段
Ip_Domain_Part=`echo $Ip_Domain |awk -F'.' '{print $1"."$2"."$3"."}'`
#IP地址从哪开始
Ip_Domain_Start=`echo $Ip_Domain |awk -F'-' '{print $1}'|awk -F'.' '{print $4}'`
#IP地址从哪结束
Ip_Domain_Stop=`echo $Ip_Domain |awk -F'-' '{print $2}'`
#指定端口列表分隔符为","
Ip_Prot_Domain='22,80,443'
#生成数组
Ip_Prot_List=(${Ip_Prot_Domain//,/ })  
#对IP地址进行循环
for Ip_Domain_Num in `seq "${Ip_Domain_Start}" "${Ip_Domain_Stop}"`
do
    #将IP地址网段和主机位合并
    Ip_Adderss_Code="${Ip_Domain_Part}${Ip_Domain_Num}"
    #判断IP地址是否为0或者255,反之则跳过
    if [ "${Ip_Domain_Num}" -eq 0 -o "${Ip_Domain_Num}" -eq 255 ];then
        #echo "当前 ${Ip_Adderss_Code} 地址不可用!"
        continue
    else
        #循环端口列表
        for Prot_Sum in ${Ip_Prot_List[@]}
        do
            #扫描指定IP及端口循环
            Ip_Domain_Status=`nmap "${Ip_Adderss_Code}" -p ${Prot_Sum} | awk "/^${Prot_Sum}/ {print \$2}"`
            #判断值是否为空,如为空则可能代表IP地址不存在,具体需进行实际测试查看!
            if [ -z "${Ip_Domain_Status}" ];then
                echo "当前主机可能不存在!"
            else
                #输出结果
                echo "${Ip_Adderss_Code} Prot ${Prot_Sum} Status: ${Ip_Domain_Status}"
            fi
        done
    fi
done

文章来源于互联网:NMAP扫描指定的网段端口是否可用

赞(0)
未经允许不得转载:莱卡云 » NMAP扫描指定的网段端口是否可用