首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在linux中列出网络中的所有活动IP地址

问在linux中列出网络中的所有活动IP地址
EN

Stack Overflow用户
提问于 2014-02-11 22:30:34
回答 5查看 3.7K关注 0票数 2

我的任务是在linux机器上组合使用ping和grep工具来生成网络中活动的ip地址列表,我只想显示那些活动的ip地址。这是我到目前为止的代码:

代码语言:javascript
复制
#!/bin/sh

COUNTER=1

while [ $COUNTER -lt 254 ]
do
  ping 10.1.0.$COUNTER -c 1
  COUNTER=$(( $COUNTER + 1 ))
done
EN

回答 5

Stack Overflow用户

发布于 2014-02-11 22:33:01

我建议您使用nmap:

代码语言:javascript
复制
nmap -sP 10.1.0.*

提供网络中的所有IP地址。

更新

如果必须使用grep和table:

代码语言:javascript
复制
nano liveAddress.sh

使用代码实现:

代码语言:javascript
复制
#!/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)。

代码语言:javascript
复制
chmod +x liveAddress.sh
./liveAddress.sh

这只给了你网络上机器的IP地址。

票数 2
EN

Stack Overflow用户

发布于 2014-02-11 22:35:43

首先,添加1秒的ping限制

代码语言:javascript
复制
#!/bin/sh

COUNTER=1

while [ $COUNTER -lt 254 ]
do
  ping -w1 10.1.0.$COUNTER -c 1
  COUNTER=$(( $COUNTER + 1 ))
done

将脚本命名为s.sh,然后

代码语言:javascript
复制
. s.sh  | grep '1 received' -B1 | awk {'print $2'}

最后,删除此脚本并使用nmap;)

票数 0
EN

Stack Overflow用户

发布于 2014-02-11 22:40:54

为什么需要使用grep?只需对您的代码稍作更改,即可找到所有有效的ips:

代码语言:javascript
复制
#!/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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21704647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档