我的任務是在Linux機器上使用ping和grep工具的組合來生成網絡中生存的ip地址列表,我只想顯示那些是生活。這是到目前爲止我的代碼:在Linux中列出網絡中的所有活動IP地址
#!/bin/sh
COUNTER=1
while [ $COUNTER -lt 254 ]
do
ping 10.1.0.$COUNTER -c 1
COUNTER=$(($COUNTER + 1))
done
我的任務是在Linux機器上使用ping和grep工具的組合來生成網絡中生存的ip地址列表,我只想顯示那些是生活。這是到目前爲止我的代碼:在Linux中列出網絡中的所有活動IP地址
#!/bin/sh
COUNTER=1
while [ $COUNTER -lt 254 ]
do
ping 10.1.0.$COUNTER -c 1
COUNTER=$(($COUNTER + 1))
done
我建議你使用NMAP:
nmap -sP 10.1.0.*
給你所有IP的網絡。
如果你必須使用grep和表:
nano liveAddress.sh
履行與代碼:
#!/bin/sh
COUNTER=1
while [ $COUNTER -lt 254 ]
do
ping -c 1 10.1.0.$COUNTER | grep PING | awk '{print $2}'
COUNTER=$(($COUNTER + 1))
done
保存(Ctrl + O)和出口(CTRL + X)。
chmod +x liveAddress.sh
./liveAddress.sh
這給你機器的ungly IP聯網聯網。
但OP說他必須使用ping和grep。 – Carlo
有沒有問題!所以我「建議」使用nmap! (: –
首先,添加1秒的極限平
#!/bin/sh
COUNTER=1
while [ $COUNTER -lt 254 ]
do
ping -w1 10.1.0.$COUNTER -c 1
COUNTER=$(($COUNTER + 1))
done
名腳本s.sh,然後
. s.sh | grep '1 received' -B1 | awk {'print $2'}
最後,刪除這個腳本和使用NMAP; )
爲什麼你需要使用grep
? 只是有點改變了代碼可以找到所有活着的IPS:
#!/bin/bash
COUNTER=1
while [ $COUNTER -lt 254 ]
do
ping -w1 10.1.0.$COUNTER -c 1
if [ $? -eq 0 ];then
echo "10.1.0.$COUNTER"
fi
COUNTER=$(($COUNTER + 1))
done
對於不想NMAP安裝一個簡單的bash腳本誰的用戶。您可以將任何C-Class網絡設置爲參數。
#!/bin/bash
#set -x
net=$1
typeset -i i
for ((i = 1 ; i<255 ; i++)) ;
do
ip=$net.$i
ping -c 1 -W1 $ip >/dev/null
if [ $? == '0' ]
then
echo $ip exists
fi
done
另存爲broadcast.sh並設置權限
chmod +755 broadcast.sh
開始
./broadcast.sh 192.168.200
輸出
192.168.200.1 exists
192.168.200.3 exists
聽起來像是你試圖做一個學校項目,他不幫助人們做他們的學校工作:( 你缺少檢查ping是否成功和存儲/輸出列表 – TheOneWhoPrograms
測試'ping'的退出狀態,因此你可以只顯示活的。 – Barmar