我的任务是在linux机器上组合使用ping和grep工具来生成网络中活动的ip地址列表,我只想显示那些活动的ip地址。这是我到目前为止的代码:
#!/bin/sh
COUNTER=1
while [ $COUNTER -lt 254 ]
do
ping 10.1.0.$COUNTER -c 1
COUNTER=$(( $COUNTER + 1 ))
done发布于 2014-02-11 22:33:01
我建议您使用nmap:
nmap -sP 10.1.0.*提供网络中的所有IP地址。
更新
如果必须使用grep和table:
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这只给了你网络上机器的IP地址。
发布于 2014-02-11 22:35:43
首先,添加1秒的ping限制
#!/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;)
发布于 2014-02-11 22:40:54
为什么需要使用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 ))
donehttps://stackoverflow.com/questions/21704647
复制相似问题