shell 脚本——实现扫描局域网存活主机IP,并写到文本

本文介绍了一个用于扫描局域网内存活主机的Bash脚本。该脚本通过用户输入的IP地址段及范围,利用arping命令扫描指定范围内哪些IP地址对应主机处于活跃状态,并将结果保存至文件。

一、这里大篇幅的代码是对输入的ip格式进行过滤,如果只考虑简单的扫描可以直接拉到最底。

只写开始扫描注释之后的代码

​​​​​​​————————————

#/bin/bash
#Scan the surviving hosts in the current network segment
#Input scan_ip judgement
#对输入的IP格式进行过滤
while :
do
read -p "请输入您的IP网段(例如:“192.169.12.”):" scan_ip
if [ `echo "$scan_ip" | awk -F '.' '{print ($1)}'` -gt 1 ] && [ `echo "$scan_ip" | awk -F '.' '{print ($1)}'` -lt 255 ]
then
        if [ `echo "$scan_ip" | awk -F '.' '{print ($2)}'` -gt 1 ] && [ `echo "$scan_ip" | awk -F '.' '{print ($2)}'` -lt 255 ]
        then
                if [ `echo "$scan_ip" | awk -F '.' '{print ($3)}'` -gt 1 ] && [ `echo "$scan_ip" | awk -F '.' '{print ($3)}'` -lt 255 ]
                then
                     echo "OK"                  
                     break
                else
                        echo "您输入的IP不合法"
                fi
        else
        echo "您输入的IP不合法" 
        fi
else
echo "您输入的IP不合法"
fi
done
#把输入的IP格式进行二次规范
scan_ip="`echo $scan_ip | awk -F . '{print $1}'`.`echo $scan_ip | awk -F . '{print $2}'`.`echo $scan_ip | awk -F . '{print $3}'`."
echo $scan_ip

#输入查询IP上限,格式筛选
while :
do
        read -p "请输入扫描的IP范围(最大IP):" max_ip
        if [ $max_ip -gt 1 ] && [ $max_ip -lt 254 ]
        then
                break
        else
                echo "IP上限不合法!"
        fi
done


#Input max_ip judgement
#输入查询IP下限,格式筛选
while :
do
        read -p "请输入扫描的IP范围(最小IP):" min_ip
        if [ $min_ip -gt 1 ] && [ $min_ip -lt 254 ]
        then
                break
        else
                echo "IP下限不合法!"
        fi
done
#扫描并存入文件
echo "本网段存活主机的ip:" > ip.txt
for((i=$min_ip;i<=$max_ip;i++))
do
  arping -c 1 $scan_ip$i
  [ $? -eq 0 ] && echo $scan_ip$i >> ip.txt
  [ $? -eq 0 ] && echo "$scan_ip$i,这个ip主机存活"
done
以上的脚本完整代码。

————————————————————————————————

# 方法二、这个脚本也可以简单的这样来编写,如下。

$scan_ip='192.168.12.'

echo "本网段存活主机的ip:" >  ip.txt

for ((i=1;1<=254;i++))

do

        arping -c 1 $scan_ip$i  

        [ $? -eq 0 ] && echo $scan_ip$i >> ip.txt  

        [ $? -eq 0 ] && echo "$scan_ip$i,这个ip主机存活"

done

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值