如何使用终端 ping 局域网内的所有 IP?

如何使用终端 ping 局域网内的所有 IP?

我正在尝试使用终端命令 ping 局域网中所有可用的系统。

有人能告诉我怎么做吗?

答案1

您可以安装一个名为 的应用程序nmap

sudo apt-get install nmap

然后,您可以通过输入以下内容检查整个网络中所有连接的 IP 地址:

nmap -sP 192.168.1.1/24

上述命令将扫描从 到192.168.1.1的所有 IP 地址192.168.1.254,并显示所有响应的 IP。

192.168.0.1 - 192.168.1.254您可以通过输入以下内容来扫描其他 IP 地址范围:

nmap -sP 192.168.0.1/23

典型的扫描可能会返回如下内容:

terrance@terrance-ubuntu:~$ nmap -sP 10.0.0.1/24

Starting Nmap 6.40 ( http://nmap.org ) at 2015-12-24 00:20 MST
Nmap scan report for Linksys03773 (10.0.0.1)
Host is up (0.00078s latency).
Nmap scan report for terrance-ubuntu (10.0.0.100)
Host is up (0.00020s latency).
Nmap scan report for android (10.0.0.148)
Host is up (0.099s latency).
Nmap scan report for PC (10.0.0.149)
Host is up (0.0014s latency).
Nmap scan report for 10.0.0.150
Host is up (0.0016s latency).
Nmap scan report for 10.0.0.165
Host is up (0.011s latency).
Nmap scan report for 10.0.0.169
Host is up (0.010s latency).
Nmap scan report for 10.0.0.179
Host is up (0.014s latency).
Nmap scan report for android (10.0.0.181)
Host is up (0.093s latency).
Nmap scan report for android (10.0.0.188)
Host is up (0.043s latency).
Nmap scan report for android (10.0.0.196)
Host is up (0.014s latency).
Nmap scan report for 10.0.0.253
Host is up (0.0013s latency).
Nmap done: 256 IP addresses (12 hosts up) scanned in 4.46 seconds

我希望这有帮助!

答案2

是另一个 ping LAN 中所有 IP 的命令。

fping -a -r 0 -g 192.168.9.0/24

192.168.9.48
192.168.9.71
192.168.9.72
192.168.9.73
192.168.9.75
192.168.9.79
192.168.9.81
192.168.9.82
ICMP Redirect from 192.168.9.4 for ICMP Echo sent to 192.168.9.83
192.168.9.84
192.168.9.85
192.168.9.87
192.168.9.88
192.168.9.90
192.168.9.92
192.168.9.104
192.168.9.106
192.168.9.108
192.168.9.109
192.168.9.116
192.168.9.117
ICMP Host Unreachable from 192.168.9.214 for ICMP Echo sent to 192.168.9.1
192.168.9.120
ICMP Host Unreachable from 192.168.9.214 for ICMP Echo sent to 192.168.9.2

-a展现活着的系统。

-rn 重试限制(默认 3)。这是尝试 ping 目标的次数,不包括第一次尝试。

-gaddr/mask 根据提供的 IP 网络掩码或起始和结束 IP 生成目标列表。在命令行的目标部分指定网络掩码或起始/结束。如果给出了带有网络掩码的网络,则将排除网络和广播地址。

要扫描从 192.168.0.1 到 192.168.0.9 的 IP 地址范围,只需运行:

sudo fping -s -g 192.168.0.1 192.168.0.9 -r 1

这将输出:

192.168.0.1 is alive
192.168.0.7 is alive
192.168.0.2 is unreachable
192.168.0.3 is unreachable
192.168.0.4 is unreachable
192.168.0.5 is unreachable
192.168.0.6 is unreachable
192.168.0.8 is unreachable
192.168.0.9 is unreachable

9 targets
2 alive
7 unreachable
0 unknown addresses

14 timeouts (waiting for response)
16 ICMP Echos sent
2 ICMP Echo Replies received
0 other ICMP received

0.05 ms (min round trip time)
0.44 ms (avg round trip time)
0.84 ms (max round trip time)
2.183 sec (elapsed real time)

这里是使用具有不同选项的 fping 的 ubuntu 手册。

答案3

有两种方法:

  • 仅使用nmap一个命令即可扫描整个本地子网。例如:nmap -sP 192.168.0.1/24
  • 使用arp-scan,它会向本地网络上的主机发送 ARP 数据包并显示收到的任何响应。默认情况下,它未安装。因此,请使用命令安装它sudo apt-get install arp-scan

一旦完成,启动此命令来扫描指定接口上的整个本地网络(例如,您的网络接口名为eth0):

sudo arp-scan --interface=eth0 --localnet

或者指定一个特定的子网:

sudo arp-scan --interface=eth0 192.168.0.1/24

答案4

对 LAN 上的所有主机执行 ping 操作的最简单方法是使用 IPv6:

ping6 -nc2 ff02::1%eth0

-n标志表示不会执行反向 DNS。如果没有该标志,它会尝试对链接本地地址执行反向 DNS,从而减慢速度,而这无论如何都行不通。

-c2标志意味着它在终止之前只会发送两次 ping。

该地址ff02::1是一个针对链路上所有主机的任播地址。

最后%eth0是附加到链路本地 IPv6 地址的符号,用于指示要使用的接口。通常为eth0wlan0

您可以对 IPv4 执行相同操作,但需要额外步骤来查找该段的广播地址。

$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr b8:ae:ed:a4:08:97  
          inet addr:172.20.124.289  Bcast:172.20.124.255  Mask:255.255.255.0
          inet6 addr: fe80::baae:edff:fea4:897/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:92446832 errors:0 dropped:669 overruns:0 frame:0
          TX packets:52031936 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:97720895471 (97.7 GB)  TX bytes:18694928767 (18.6 GB)
$ ping -bnc2 172.20.124.255

这里我首先ifconfig查看 IP 地址eth0,然后 ping 它。另外,我需要标志-b来表明ping我确实想要 ping 广播地址。

相关内容