1. 測試192.168.4.0/24整個網(wǎng)段的連通性(while版本)
#!/bin/bash
#Author:丁丁歷險(Jacob)
#定義變量i控制循環(huán)次數(shù),i從1開始循環(huán),每循環(huán)一次,i自加1,直到i等于254循環(huán)退出
#在每次循環(huán)中對一個IP進行ping測試,如果ping通,提示主機是UP的
#如果無法ping同,則提示主機是down的
#ping命令的-c選項控制ping測試的次數(shù),-c2表示對目標主機執(zhí)行2次ping測試
#ping命令的-i選項,控制多次ping測試的間隔時間默認為1秒,-i0.3可以提升ping的測試效率
#ping命令的-W選項,可以控制超時時間,默認一個主機無法ping通,需要等很長的超時時間,
#才會提示無法ping通,使用-W1,設置超時時間為1秒。
i=1
while [ $i -le 254 ]
do
ping -c2 -i0.3 -W1 192.168.4.$i >/dev/null
if [ $? –eq 0 ];then
echo "192.168.4.$i is up"
else
echo "192.168.4.$i is down"
fi
let i++
done
2. 測試192.168.4.0/24整個網(wǎng)段的連通性(for版本)
#!/bin/bash
#Author:丁丁歷險(Jacob)
#定義for循環(huán)變量i,執(zhí)行循環(huán)次數(shù)為254次,i從1循環(huán)到254
#每次循環(huán)對某一臺目標主機測試ping的連通性,ping命令的語法格式參考前面的while版本
for i in {1..254}
do
ping -c2 -i0.3 -W1 192.168.4.$i >/dev/null
if [ $? –eq 0 ];then
echo "192.168.4.$i is up"
else
echo "192.168.4.$i is down"
fi
done
3. 測試192.168.4.0/24整個網(wǎng)段的連通性(多進程版本)
#!/bin/bash
#Author:丁丁歷險(Jacob)
#定義一個函數(shù),ping某一臺主機,并檢測主機的存活狀態(tài),ping語法格式參考前面的while版本
myping(){
ping -c2 -i0.3 -W1 $1 >/dev/null
if [ $? -eq 0 ];then
echo "$1 is up"
else
echo "$1 is down"
fi
}
for i in {1..254}
do
myping 192.168.4.$i
done
#使用符號,將執(zhí)行的函數(shù)放入后臺執(zhí)行
#這樣做的好處是不需要等待ping第一臺主機的回應,就可以繼續(xù)并發(fā)ping第二臺主機,依次類推。
總結(jié)
以上所述是小編給大家介紹的shell腳本測試某網(wǎng)段內(nèi)主機連通性,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
您可能感興趣的文章:- Shell腳本獲取國內(nèi)各大運營商網(wǎng)段腳本分享
- 檢測網(wǎng)段IP使用情況的shell腳本
- 獲取同一網(wǎng)段下所有機器MAC地址的shell腳本