在linux中列出networking中的所有活动IP地址

我的任务是在Linux机器上使用pinggrep工具的组合来生成一个在networking中生存的ip地址列表,我只想显示那些live。 这是我的代码到目前为止:

#!/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和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 

这给你的机器联网unga网络。

首先,为ping添加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