一个用于 ping 一组 IP 并仅返回在线信息的脚本?

一个用于 ping 一组 IP 并仅返回在线信息的脚本?

我需要一个脚本来 ping 一组 ips 并返回在线的 ips , 例如它会回显 10.10.10.10 已上线

10.10.10.11 已上线

10.10.10.15 已上线

无需使用任何软件包或第三方实用程序!

有什么帮助吗?

答案1

不需要脚本。nmap安装 nmap可以为您做到。

例如,要扫描 10.10.10.0/24 网络,请执行

nmap -sn 10.10.10.0/24

这将根据对 ICMP 回显请求(称为“ping”)的响应来报告主机是否已启动。示例输出:

Starting Nmap 5.21 ( http://nmap.org ) at 2014-01-30 00:40 CET
Nmap scan report for 10.10.10.1
Host is up (0.0061s latency).
Nmap scan report for 10.10.10.2
Host is up (0.00071s latency).
Nmap scan report for android (10.10.10.112)
Host is up (0.0087s latency).
Nmap scan report for laptop (10.10.10.134)
Host is up (0.00037s latency).
Nmap scan report for 10.10.10.151
Host is up (0.00094s latency).
Nmap scan report for 10.10.10.203
Host is up (0.00060s latency).
Nmap done: 256 IP addresses (6 hosts up) scanned in 3.41 seconds

答案2

下面的脚本将循环子网 IP,并返回在线结果:

#!/bin/bash

is_alive_ping()
{
  ping -c 1 $1 > /dev/null
  [ $? -eq 0 ] && echo Node with IP: $i is Online.
}

for i in 10.1.1.{1..255} 
do
is_alive_ping $i & disown
done

注意将 10.1.1. 更改为您的子网,1..255 告诉脚本从 10.1.1.1 开始并循环告诉 10.1.1.255

执行:

./ping_scan.sh

相关内容