在 Linux 中显示 LAN 上的计算机列表

Cap*_*ack 82 networking security wireless-networking

我是一名网络开发人员,正在努力更好地处理安全问题。我试图找出一种方法(在基于 Linux/Debian 的发行版上)列出我的上网本所在的同一 LAN 上的所有计算机。我试过“arp -n”,但我觉得这不是一个完整的列表,因为我的 iPhone 和上网本在同一个 Wi-Fi 路由器上,但​​没有出现。有没有更好的方法来获取共享同一网关的机器的完整列表?

Tyl*_*ile 70

获取nmap。它是 The Matrix 中使用的程序 Trinity,您可以进行扫描以查找连接到您所在 LAN 的所有设备等等。

是参考指南。

  • 好的。看起来“sudo nmap -sL 123.123.123.*”是我正在寻找的,或者可能是-sP而不是-sL。谢谢! (16认同)
  • 使用 `sudo apt-get install nmap` 安装 nmap (3认同)
  • 我以为这实际上是一个严肃的网站,lol +1 (2认同)

小智 57

这就是我使用的,nmap 和使用 CIDR 块符号表示要扫描的网络的地址。首先你需要安装 nmap,因为它可能没有预装在你的发行版中。在 Ubuntu 上:

sudo apt-get install nmap
Run Code Online (Sandbox Code Playgroud)

接下来使用 ifconfig 找出您的网络地址:

ifconfig
Run Code Online (Sandbox Code Playgroud)

我要扫描的接口的 ifconfig 输出:

wlan1     Link encap:Ethernet  HWaddr 00:1f:3b:03:d2:bf  
          inet addr:192.168.1.104  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::21f:3bff:fe03:d2bf/64 Scope:Link
          ...
Run Code Online (Sandbox Code Playgroud)

使用 inet addr 和 Mask 来计算 CIDR 表示法中的网络地址,更多关于 CIDR在这里。地址是:

192.168.1.0/24
Run Code Online (Sandbox Code Playgroud)

使用 -sP 参数运行 nmap,它只会扫描检查主机是否在线:

sudo nmap -sP 192.168.1.0/24
Run Code Online (Sandbox Code Playgroud)

nmap 输出将如下所示:

Starting Nmap 5.21 ( http://nmap.org ) at 2014-12-09 10:52 EST
Nmap scan report for 192.168.1.1
Host is up (0.013s latency).
MAC Address: -MAC ADDRESS- (Cameo Communications)
...
Nmap done: 256 IP addresses (5 hosts up) scanned in 3.26 seconds
Run Code Online (Sandbox Code Playgroud)

就是这样,如果您需要更多关于 nmap 的帮助,请参阅nmap 官方文档,或者运行:

nmap --help 
Run Code Online (Sandbox Code Playgroud)

  • `nmap -sA 192.168.1.0/24` nmap 选项 `-sA` 显示了类似的描述性结果,具有更好的可读性,其中包括设备名称、IP、mac 等,与选项 `-sP` 一样.. 我个人更喜欢 -sA 胜过 - sP 为了可读性。 (2认同)
  • @Jayzcode 在我的机器上 -sA 永远不会返回,而 -sP 仅花了 3.73 秒(检测到路由器、我的电脑和另一台电脑)。知道为什么吗? (2认同)

Spi*_*iff 19

arp -n只显示您的机器已经与之通信的 LAN 上的机器。您可以通过 ping 广播和所有主机多播地址来更好地填充该列表:

“全一”(二进制)广播地址。请注意,大多数 IP 堆栈会将其转换为您所连接的所有子网的子网广播地址:

ping 255.255.255.255
Run Code Online (Sandbox Code Playgroud)

当前子网的子网广播地址。所以假设你在 192.168.1.0/24 上:

ping 192.168.1.255
Run Code Online (Sandbox Code Playgroud)

“所有主机”多播地址。我非常喜欢这个,因为它更有可能找到为其他 IP 子网配置的主机,这些主机碰巧与您连接到同一个以太网 LAN:

ping 224.0.0.1
Run Code Online (Sandbox Code Playgroud)

请注意,此方法以及我目前在其他答案中看到的其他方法仅查找当前网络上可访问 IP 的主机。这可能就是您需要关心的全部内容,但是攻击者有可能在不通过 IP 可见的情况下窥探网络或对网络做坏事。


Mar*_*oma 14

ip neighhosts不需要nmap/不需要sudo

在此基础上,您可以构建一个 Python 脚本:

#!/usr/bin/env python

"""List all hosts with their IP adress of the current network."""

import os

out = os.popen('ip neigh').read().splitlines()
for i, line in enumerate(out, start=1):
    ip = line.split(' ')[0]
    h = os.popen('host {}'.format(ip)).read()
    hostname = h.split(' ')[-1]
    print("{:>3}: {} ({})".format(i, hostname.strip(), ip))
Run Code Online (Sandbox Code Playgroud)

下载方式

wget https://gist.githubusercontent.com/MartinThoma/699ae445b8a08b5afd16f7d6f5e5d0f8/raw/577fc32b57a7f9e66fdc9be60e7e498bbec7951a/neighbors.py
Run Code Online (Sandbox Code Playgroud)

(或者干脆arp……我之前没看到)

  • 或者只是`ip neigh | awk '{ 打印 $1 }' | xargs -n1 主机` (2认同)

Sri*_*bat 7

地图扫描

要扫描一系列 IP 地址的状态,这很简单:

sudo nmap -sn 192.168.1.2-20
Run Code Online (Sandbox Code Playgroud)

在哪里:

         -sn: Ping Scan - disable port scan
Run Code Online (Sandbox Code Playgroud)

笔记:

  • 在以前的 Nmap 版本中,-sn被称为-sP

我在 Mac OS X(基于 BSD)上做了这个。我不确定 Linux 版本是否有任何差异。

  • 太棒了,我只需要输入:sudo nmap -sP 192.168.178.0-255。这在我所在的子网中进行了扫描。 (2认同)

小智 6

您可以使用fping sudo apt-get install fping(在类似 debian 的操作系统中)。

fping类似于 ping,但在 ping 多个主机时性能要好得多。该-r 1个标志告诉fping只进行一轮。的2> 1 部分允许grep来过滤输出。

$ fping -g -r 1 192.168.1.0/24 2>1 | grep "alive"
Run Code Online (Sandbox Code Playgroud)

会显示如下内容:

192.168.1.1 is alive
192.168.1.10 is alive
192.168.1.15 is alive
192.168.1.27 is alive
Run Code Online (Sandbox Code Playgroud)

nmap还有一个有趣的标志,可以让您看到 MAC 供应商——如果知道的话。与sudo一起使用以查看 MAC 地址。

$ sudo nmap -sP 192.168.1.0/24
Run Code Online (Sandbox Code Playgroud)

你会得到例如:

Starting Nmap 7.40 ( https://nmap.org ) at 2019-05-23 18:49 CEST
Nmap scan report for 192.168.1.14
Host is up (-0.036s latency).
MAC Address: 20:F4:1B:E5:8F:7B (Shenzhen Bilian electronic)
Nmap scan report for 192.168.1.15
Host is up (-0.084s latency).
MAC Address: A4:31:35:E8:58:9E (Apple)
Nmap scan report for 192.168.1.27
Host is up (-0.15s latency).
MAC Address: 34:8A:7B:38:E3:14 (Samsung Electronics)
Nmap scan report for 192.168.1.29
Host is up (0.010s latency).
MAC Address: 80:2B:F9:75:F8:FF (Unknown)
Nmap scan report for 192.168.1.10
Host is up.
Nmap done: 256 IP addresses (5 hosts up) scanned in 25.52 seconds
Run Code Online (Sandbox Code Playgroud)