linux 批量ping多個連續的IP地址

#!/bin/bash
#author:zhaoyuqin
#date:20200323
#引用系統函數
. /etc/init.d/functions
#交互式獲取網段地址
read -p "請輸入網段(255.255.255.255):" net
#截取部分網段地址
network=`echo $net|cut -d "." -f 1,2,3`
#檢查IP是否合法
if [ -z "$net"  ];then
              echo -e "\e[32m\e[1m 網段地址不能爲空 \e[0m"
              exit 1
 fi


function checkIPAddr()
{
#匹配正確的IP格式
echo $net|grep "^[0-9]\{1,3\}\.\([0-9]\{1,3\}\.\)\{2\}[0-9]\{1,3\}$" > /dev/null 2>&1
if [ $? -eq 1 ];then
	echo -e "\e[32m\e[1m 請勿輸入除數字外的其他符號 \e[0m"
	exit 1
fi
a=`echo $net|awk -F . '{print $1}'`
b=`echo $net|awk -F . '{print $2}'`
c=`echo $net|awk -F . '{print $3}'`
for num in $a $b $c
do
	if [ $num -gt 255 ] || [ $num -lt 0 ];then
	echo -e "\e[32m\e[1m 輸入的網段地址不合法! \e[0m"
	exit 1
	fi
done
}
checkIPAddr
read -p "請地址輸入範圍(min-max):" sum1 sum2
#循環ping
for i in `seq $sum1 $sum2`
do
	
	ping -c1 -W1 ${network}.${i}>/dev/null 2>&1
	if [ $? -eq 0 ];then
	action "${network}.${i}" /bin/true
	else
	action "${network}.${i}" /bin/false
	fi
	 
done
#等待以上命令執行完成後再執行
wait
#輸出完成時間
end_Time=`date`
echo "完成時間:$end_Time"


該腳本實現的功能:
1.批量ping多個連續的IP地址並返回值
2.寫了個函數來檢查IP合法性
3.練練手的~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章