在 Linux 中找出所有在线主机的 IP 地址
你可以在 Linux 的生态系统中找到很多网络监控工具，它们可以为你生成出网络中所有设备的摘要，包括它们的 IP 地址等信息。然而，实际上有时候你只需要一个简单的命令行工具，运行一个简单的命令就能提供同样的信息。
nmap
206.191.170.209
有zmap的吗？
来自美国的 Chrome 54.0|Windows 8.1 用户
2016-12-08T08:15:36.000
118.79.126.98
https://linux.cn/article-5860-1.html<br />
<br />
// 你看你不注册用户，没法进行站内搜索吧~
linux [Chrome 54.0|Mac 10.11]
2016-12-08T09:10:48.000
222.92.187.131
cool
来自江苏苏州的 Firefox 45.0|GNU/Linux 用户
2016-12-08T10:02:57.000
118.122.120.11
往文章的右侧看，或者 Ctrl-F 在本页面搜一下 zmap。
来自四川成都的 Chrome 54.0|GNU/Linux 用户
2016-12-08T11:18:39.000
222.143.20.29
我记得NMAP里有个NPING的工具，可以自定义发送伪装包。以前利用这个试过ARP。后来笔记没有了。不知道站里有这个工具的介绍吗？
lmzg [Chrome 54.0|Windows 10]
2016-12-15T08:52:44.000
210.13.83.237
精品好文收藏分享
wst021 [Chrome 55.0|Windows 8.1]
2016-12-23T10:20:42.000
你可以在 Linux 的生态系统中找到很多网络监控工具，它们可以为你生成出网络中所有设备的摘要，包括它们的 IP 地址等信息。然而，实际上有时候你只需要一个简单的命令行工具，运行一个简单的命令就能提供同样的信息。
![](/data/attachment/album/201612/06/221705eiyxem2djd2cc0d7.jpg)


你可以在 Linux 的生态系统中找到很多[网络监控工具](https://linux.cn/topic-linux-system-performance-monitoring.html)，它们可以为你生成出网络中所有设备的摘要，包括它们的 IP 地址等信息。


然而，实际上有时候你只需要一个简单的命令行工具，运行一个简单的命令就能提供同样的信息。


本篇教程会向你展示如何找出所有连接到给定网络的主机的 IP 地址。这里我们会使用 [Nmap 工具](http://www.tecmint.com/nmap-network-security-scanner-in-kali-linux/)来找出所有连接到相同网络的设备的IP地址。


[Nmap](/article-7960-1.html) (Network Mapper 的简称)是一款开源、强大并且多功能的探查网络的命令行工具，用来[执行安全扫描、网络审计](http://www.tecmint.com/audit-network-performance-security-and-troubleshooting-in-linux/)、[查找远程主机的开放端口](http://www.tecmint.com/find-open-ports-in-linux/)等等。


如果你的系统中还没有安装 Nmap，在你的发行版中运行合适的命令来安装：



```
$ sudo yum install nmap     [在基于 RedHat 的系统中]
$ sudo dnf install nmap     [在基于Fedora 22+ 的版本中]
$ sudo apt-get install nmap [在基于 Debian/Ubuntu 的系统中]

```

安装完成后，使用的语法是：



```
$ nmap  [scan type...]  options  {target specification}

```

其中，**{target specification}**这个参数可以用**主机名、IP 地址、网络**等来替代。


所以要列出所有连接到指定网络的主机 IP 地址，首先要使用 [ifconfig 命令](http://www.tecmint.com/ifconfig-command-examples/)或者[ip 命令](http://www.tecmint.com/ip-command-examples/)来识别网络以及它的子网掩码：



```
$ ifconfig
或者
$ ip addr show

```

![Find Network Details in Linux](/data/attachment/album/201612/08/090909axrkfdr3ynjnbnzx.png)


*在 Linux 中查找网络细节*


接下来，如下运行 Nmap 命令：



```
$ nmap  -sn  10.42.0.0/24

```

 [![Find All Live Hosts on Network](/data/attachment/album/201612/06/221731agtnqp13ttz1c2zn.png)](http://www.tecmint.com/wp-content/uploads/2016/11/Find-All-Live-Hosts-on-Network.png) 


*查找网络中所有活跃的主机*


上面的命令中：


* `-sn` - 是扫描的类型，这里是 ping 方式扫描。默认上，Nmap 使用端口扫描，但是这种扫描会禁用端口扫描。
* `10.42.0.0/24` - 是目标网络，用你实际的网络来替换。


要了解全面的信息，查看 Nmap 的手册：



```
$ man nmap

```

或者不带任何参数直接运行 Nmap 查看使用信息摘要：



```
$ nmap

```

此外，对于有兴趣学习 Linux 安全扫描技术的人，可以阅读 [Nmap in Kali Linux](http://www.tecmint.com/nmap-network-security-scanner-in-kali-linux/) 这篇实践指导。


好了，就是这样了，记得在下面的回复区给我们发送问题或者评论。你也可以跟我们分享其他列出指定网络已连接设备的 IP 地址的方法。




---


via: <http://www.tecmint.com/find-live-hosts-ip-addresses-on-linux-network/>


作者：[Aaron Kili](http://www.tecmint.com/author/aaronkili/) 译者：[geekpi](https://github.com/geekpi) 校对：[jasminepeng](https://github.com/jasminepeng)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

