从路由器后面获取IP的MAC地址


8

我想知道,如果可能的话,如果我在路由器后面,如何获取IP地址的MAC地址。

我尝试对IP执行ping操作并检查arp表,但是唯一的条目是路由器的MAC。

有任何想法吗?

谢谢阅读。

Answers:


20

MAC地址不会被路由器传递。您需要查看路由器的ARP表。

编辑:

除非您有其他访问机器的方式,否则是不可能的。如果您可以连接到已打开的网络(VNC,RDP,SSH),则可以执行此操作,否则不行。

如果您的路由器未在其Web界面上提供ARP表,则可以查看是否可以telnet:许多家用路由器具有隐藏在Web界面中的更高级的功能。


如果我无法访问路由器的arp表,那不可能吗?
Macarse

1
是。ARP被称为不可路由协议-永远不会在本地网络之外。如果要查看MAC地址,则必须位于直接连接的本地设备上,或者必须具有足够的远程访问权限才能枚举ARP表。
凯尔·布​​兰特利

5

不能保证可以看到路由器后面的计算机的MAC地址。但是有些协议可以帮助您从网络中的任何地方查找MAC地址。例如,要在其他网络上找到Windows PC的IP地址时查找它的IP地址,可以使用命令

nbtstat -A <IP Address>

要在Linux机器(安装了samba)上执行相同的操作,请使用命令

nmblookup -R -S -A <IP Address>

如果所讨论的计算机不是Windows计算机,则无法成为其他子网的一部分。然后,唯一的选择是在路由器中查看MAC地址表,或者如果存在通用的网络范围内的DHCP服务器,则可以在DHCP日志中查看MAC地址。但是我想您必须是管理员才能访问路由器或DHCP服务器。

因此,如果您的网络上有很多Windows计算机,即使它们不在其子网中,您也可以找到它们的MAC地址。但是,如果网络中有很多Linux机器,那么就没有很好的通用方法从其他网络中查找MAC。

以上技术在Linux samba服务器上不起作用。他们将始终将MAC地址返回为00-00-00-00-00-00。


3

如果有问题的IP不在路由器的直接连接的子网上,则MAC将不在路由器的ARP表中。

ARP仅对IP连接的最后一跳(第2层)可见/相关。第一个路由实体和最后一个路由实体之间的所有内容都是第3层,它不使用源实体或目标实体的ARP,而是使用下一个直接连接的路由实体的ARP。


2

我想你想知道的是-

您如何找到不属于您子网的特定IP(机器)的MAC?

对于子网上的所有计算机/ IP,IP-MAC表存储在计算机本地的ARP缓存中。这与提供“ IP解析冲突”的缓存相同。做一个简单的

$ arp -a | grep特别IP

现在,对于您子网外的机器-没有执行该操作的机架应用程序标准,我试图考虑是否有任何ICMP消息可以做到这一点,但到目前为止,我认为还没有。很好的设计网络而不是分层的方式,这是故意的有害行为。为了逃避或删除与当前层以下有关的信息,并且随着我们跨网络使用IP,因此没有MAC。

看看您是否在另一台计算机上有合作,您可以编写一个小应用程序,其中封装了mac标头并发送给您...当然,如果您在另一台计算机上有合作,那么为什么要花这么多精力来做一个简单的ifconfig -a可以完成该机器上所有接口的工作。


1

您只能“查看”位于同一子网中的主机的mac地址。然后,您可以使用arp命令列出所有mac地址:

arp -a

或单个IP地址:

arp -a 192.168.0.1

我说我在路由器后面,所以我不在同一子网中。
Macarse,2009年

0

如果您可以访问远程PC或远程网络上的任何PC,则可以使用WMI或运行各种应用程序来提供MAC地址。我想不出任何其他方式来获取MAC地址。

JR


不,我无法访问子网:(
Macarse


0

就像在其他答案中告诉人们的那样,ARP是第二层协议,并且不能路由,因此以常规方法进行扫描不会为您提供MAC地址。例

nmap -sn target

只会提供位于同一网段的设备的MAC地址。有两个使用助手的nmap脚本,例如nbtstat和snmp

NBTSTAT 这要求在目标nmap命令打开的UDP端口137

nmap -sU --script nbtstat.nse -p 137 target

SNMP 该协议必须正常运行,它的端口开放,才能为我们提供有关目标MAC的任何信息。也是UDP端口161

nmap -sU -p 161 --script=snmp-interfaces target

IPV6地址 可用于从IPv6或类似地址(teredo,6至4等)检索MAC。我只在有一部分Mac的IPv6地址上尝试过

nmap -sV -sC target

(这是nmap https://nmap.org/nsedoc/scripts/address-info.html的命令),但在测试时(在内部fe80主机上),则需要-6这样

nmap -sV -sC -6 target 


-2

我不知道路由器,但是如果您有IP地址,即使在本地主机中也可以使用nmap获取mac地址,因此您也可以为什么要从路由器或类似的东西上获取它呢?如果您的操作系统是Linux,则可以使用macchanger或许多其他应用程序,因此我没有idia为什么要这样做。


我认为您错过了问题中的路由器一词。
卡巴斯德(Kasperd)'16
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.