Answers:
您对有关的局域网了解多少?我假设您不知道只是插入电缆或连接到wifi。
-sP
某些主机不响应ping的情况(请参阅文档)。仅当您的网络设置和路由正确时,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。这非常慢,但是您可能会发现由于某种原因而错过主机发现的其他主机。
我喜欢ip neigh
IpRoute2附带的命令。
ip neigh
192.168.1.1 dev eth0 lladdr 00:1d:7e:f8:21:66 REACHABLE
但是,我认为它仅适用于arp
-able节点。
man ip
显示邻居-邻居做什么。
安装nmap并运行nmap -sP <mynetwork>
。
Nmap done: 1 IP address (1 host up) scanned in 0.01 seconds
。
nmap -sP 192.168.0.*
,它返回了以下形式的输出列表:Nmap scan report for justin-desktop2 (192.168.0.61)
Host is up (0.00056s latency).
Host 192.168.2.23 is up (0.0088s latency).
。
对于这两个答案:不需要nmap /不需要sudo。
$ arp
在xenoterracides上构建并使用ip neigh
和hosts
:
#!/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