如何查找其他哪些计算机连接到本地网络


27

如何查看我所属的LAN上所有可用计算机的列表。

Answers:


28

您对有关的局域网了解多少?我假设您不知道只是插入电缆或连接到wifi。

  1. 尝试通过DHCP请求IP地址。你得到一个吗?然后您已经知道了几件事:网关IP,DHCP服务器IP,子网掩码以及DNS服务器。
  2. 如果没有,则没有DHCP服务器,或者网络经过MAC过滤。
  3. 无论哪种方式,都开始使用wireshark捕获数据包。如果您使用无线或连接到集线器,这很容易。如果您连接到交换机,则可以尝试MAC泛洪将其切换回“集线器模式”,但是更智能的交换机只会禁用您的端口。如果您想尝试一下,ettercap可以为您完成。(或者macchanger和一个shell脚本:))
  4. 查看数据包可以找到IP地址,但最重要的是,您可以猜测网络参数。如果您怀疑MAC过滤在离开后将其MAC地址更改为观察到的地址之一(暂时不发送任何内容)。
  5. 当您对网络配置(网络掩码,网关等)有一个很好的了解时,请使用nmap进行扫描。Nmap的作用远不止-sP某些主机不响应ping的情况(请参阅文档)。仅当您的网络设置和路由正确时,nmap才有效,这一点很重要。
  6. 您可以使用nmap的空闲扫描找到更多主机。

一些(大多数?)系统管理员不喜欢上述几种方法,因此请确保允许使用(例如,这是您的网络)。另请注意,您自己的防火墙可以阻止其中某些方法(甚至通过DHCP获得IP),因此请首先检查您的规则。

地图

这是使用nmap进行基本主机发现的方法。正如我所说,尝试此操作时,您的网络配置应该正确。假设您在/ 24子网中为192.168.0.50。您的MAC地址是可以连接的东西,等等。我喜欢运行Wireshark来查看我在做什么。

首先,我想尝试列表扫描,它仅尝试解析DNS中指定IP地址的PTR记录。它不向主机发送任何内容,因此无法保证它确实已连接或已打开,但是很有可能。显然,此模式需要一个愿意与您交谈的DNS服务器。

nmap -vvv -sn -sL 192.168.1.0/16

这可能什么也找不到,也可能告诉您每个IP都已启动。

然后我通常会进行ARP扫描。它发送ARP请求(您可以"Who has <target IP>? Tell <your IP>"在wireshark中看到它们)。这是非常可靠的,因为没有人可以过滤或伪造ARP。主要缺点是它只能在您的子网中使用。

nmap -vvv -sn -PR 192.168.1.0/24

如果要扫描路由器或防火墙后面的内容,请使用SYN和ACK扫描。SYN启动TCP连接,您将获得RST或SYNACK作为响应。无论哪种方式,主机都可以启动。如果有防火墙,则可能会禁止ICMP通信或类似的操作。大多数情况下,如果防火墙过滤了您的数据包,您将一无所获。某些类型的防火墙仅过滤TCP SYN数据包,并让其他所有TCP数据包通过。这就是ACK扫描很有用的原因。如果主机启动,您将获得RST作为响应。由于您不知道安装了什么防火墙,请同时尝试两者。

nmap -vvv -sn -PS 10.1.2.0/24
nmap -vvv -sn -PA 10.1.2.0/24

然后,当然可以将基于ICMP的扫描与-PE -PP -PM一起使用。

另一个有趣的方法是-PO,协议号不存在。通常在防火墙上仅考虑TCP和UDP,并且没有人测试使用某些未知协议时会发生什么。如果主机启动,则将无法获得ICMP协议。

nmap -vvv -sn -PO160 10.1.2.0/24

您还可以告诉nmap跳过主机发现(-Pn),并在每个主机上执行portcan。这非常慢,但是您可能会发现由于某种原因而错过主机发现的其他主机。


这看起来是一个很好的答案,现在我将不得不要求您包括为每个任务运行哪些命令,以spoon喂我。我对如何使用Nmap回答我的问题特别感兴趣(不要让我阅读文档:)
tshepang 2011年

5
@Tshepang:我添加了一些nmap示例,但我希望您考虑阅读文档。Nmap是最出色的网络工具之一,而且文档写得很好,值得花时间。
stribika 2011年

9

我喜欢ip neighIpRoute2附带的命令。

ip neigh
192.168.1.1 dev eth0 lladdr 00:1d:7e:f8:21:66 REACHABLE

但是,我认为它仅适用于arp-able节点。


它到底是做什么的?我,它只列出了一些条目。
tshepang 2011年

我认为它只是向广播IP发送arp,并列出了响应的内容。老实说,我不知道它是如何工作的。
xenoterracide 2011年

1
man ip显示邻居-邻居做什么。
slm

9

安装nmap并运行nmap -sP <mynetwork>


我懂了Nmap done: 1 IP address (1 host up) scanned in 0.01 seconds
tshepang 2011年

1
@Tshepang-我做到了nmap -sP 192.168.0.*,它返回了以下形式的输出列表:Nmap scan report for justin-desktop2 (192.168.0.61) Host is up (0.00056s latency).
Justin Ethier

@justin我使用的是5.00版,现在它以形式显示网络上的许多计算机Host 192.168.2.23 is up (0.0088s latency).
tshepang 2011年

3
我应该用什么代替<mynetwork>?
tshepang 2011年

@tshepang网络号,主机部分为零,并且CIDR掩码为。像这样:192.169.1.0/24
基思(Keith)

0

对于这两个答案:不需要nmap /不需要sudo

答案1

$ arp

答案2

在xenoterracides上构建并使用ip neighhosts

#!/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))

通过下载

wget https://gist.githubusercontent.com/MartinThoma/699ae445b8a08b5afd16f7d6f5e5d0f8/raw/577fc32b57a7f9e66fdc9be60e7e498bbec7951a/neighbors.py
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.