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