39

我有一个文本文件中的远程机器列表。我可以使用 nmap 知道他们的 MAC 地址吗?

4

11 回答 11

64

如果您使用的是 nmap,则 MAC 地址在您与目标位于同一网段时可用。如果您以 root 身份运行,较新版本的 nmap 只会向您显示 MAC 地址。

IE:

须藤 nmap -sP -n 192.168.0.0/24

于 2013-01-04T21:44:07.593 回答
19

使用snmp-interfaces.nse nmap 脚本(用 lua 编写)获取远程机器的 MAC 地址,如下所示:

nmap -sU -p 161 -T4 -d -v -n -Pn --script snmp-interfaces 80.234.33.182

13:25 完成 NSE,经过 2.69 秒
80.234.33.182 的 Nmap 扫描报告
主机已启动,收到用户设置(0.078 秒延迟)。
扫描于 2014-08-22 13:25:29 Арабское время (зима) 3s
港口国服务原因
161/udp 打开 snmp udp 响应
| snmp接口:
| 伦理
|     MAC地址:00:50:60:03:81:c9(腾保电信AS)
| 类型:ethernetCsmacd 速度:10 Mbps
| 状态:上
| 流量统计:发送 1.27 Gb,接收 53.91 Mb
| 罗
| 类型:软件环回速度:0 Kbps
| 状态:上
|_ 流量统计:发送 4.10 Kb,接收 4.10 Kb
于 2014-08-22T09:30:21.550 回答
10

在当前版本的 nmap 中,您可以使用:

sudo nmap -sn 192.168.0.*

这将打印所有可用主机的 MAC 地址。当然提供您自己的网络、子网和主机 ID。

进一步的解释可以在这里找到。

于 2016-11-29T14:53:30.673 回答
4

一些脚本可以为您提供所需的内容。如果节点运行 Samba 或 Windows,nbstat.nse 将显示 MAC 地址和供应商。

sudo nmap -sU -script=nbstat.nse -p137 --open 172.192.10.0/23 -oX 172.192.10.0.xml | grep MAC * | awk -F";" {'print $4'}
于 2014-01-09T18:45:01.257 回答
4
if $ ping -c 1 192.168.x.x 

返回

1 packets transmitted, 1 received, 0% packet loss, time ###ms

那么您可能会使用 arping 返回 MAC 地址,但 ARP 仅适用于您的本地网络,而不适用于互联网。

$ arping -c 1 192.168.x.x

ARPING 192.168.x.x from 192.168.x.x wlan0
Unicast reply from 192.168.x.x [AA:BB:CC:##:##:##]  192.772ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)

最后,例如,您可以使用去掉冒号的 AA:BB:CC 来从设备的供应商 ID 中识别设备。

$ grep -i '709E29' /usr/local/share/nmap/nmap-mac-prefixes 
709E29 Sony Interactive Entertainment
于 2017-01-12T16:33:37.717 回答
2

只有在以下情况下,nmap 才能发现远程目标的 MAC 地址

  • 目标与运行 nmap 的机器位于同一链接上,或者
  • 目标通过 SNMP、NetBIOS 等泄露这些信息。

如果目标使用 EUI-64 标识符,则 IPv6 出现另一种可能性,则可以从 IP 地址中推断出 MAC 地址。

除了上述可能性之外,没有可靠的方法可以通过网络扫描技术获取远程目标的 MAC 地址。

于 2014-08-29T11:36:57.570 回答
2

不使用 nmap ......但这是另一种选择......

arp -n|grep -i B0:D3:93|awk '{print $1}'
于 2015-08-14T15:29:54.003 回答
2

我不够酷,无法对帖子发表评论。所以我想我需要发一个新帖子。然而,“sudo nmap -sn 192.168.0.0/24”的上述建议是获取本地网络/vlan/子网上IP的所有MAC的最佳最快方法OP没有提到的,是获得的唯一方法以这种方式获取 MAC 地址,您必须使用 sudo(或其他超级用户权限,即 Windows 管理员)命令 nmap -sn 192.168.0.0/24 将发现您网络上的主机,但不会返回 MAC,因为您未处于 SU 模式的操作。

于 2017-01-09T19:17:58.017 回答
2

是的,请记住使用 root 帐户。

=======================================

qq@peliosis:~$ sudo nmap -sP -n xxx.xxx.xxx

Starting Nmap 6.00 ( http://nmap.org ) at 2016-06-24 16:45 CST

Nmap scan report for xxx.xxx.xxx

Host is up (0.0014s latency).

MAC Address: 00:13:D4:0F:F0:C1 (Asustek Computer)

Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds
于 2016-06-24T08:48:49.127 回答
1

只是标准扫描将返回 MAC。

nmap -sS target
于 2014-08-28T23:47:35.970 回答
1

在最新版本的 nmap 6.40 中,它会自动显示 MAC 地址。例子:

nmap 192.168.0.1-255

此命令将从 192.168.0.1 到 255 扫描您的网络,并在您的网络上显示主机及其 MAC 地址。

如果您想显示单个客户端的 mac 地址,请使用此命令确保您是 root 用户或使用“sudo”

sudo nmap -Pn 192.168.0.1

此命令将显示主机 MAC 地址和打开的端口。

希望这会有所帮助。

于 2014-07-23T11:56:03.377 回答