PC 和嵌入式 Linux 设备连接在同一本地网络上。(我们没有 DHCP 服务器访问权限,IT 管理员有访问权限)。我们也无法在嵌入式 Linux 板上调试 UART。
我们确实知道设备的 MAC-id。那么有没有办法根据MAC-id获取设备的IP呢?
注:PC 运行 Windows 7。
答案1
我相信在Windows机器上你可以输入:
arp -a
此时它将列出计算机知道的所有 MAC 地址和 IP 地址。
如果那里没有列出,您可以考虑安装nmap
在您的 Windows 机器上。然后,nmap
扫描整个子网中的设备:
nmap -sP 192.168.1.0/24
答案2
在电脑上尝试
arp -a
这基本上显示了 mac 和 IP 之间的映射。
这意味着设备以某种方式拥有一个 IP,我认为就是这种情况。
答案3
如果设备在过去 30 秒内(或您的 arp 超时设置为任何值)在同一网络上进行通信,那么您会看到其 IP 和 MAC,并带有arp -a
.
这适用于 Linux、Windows、BSD 以及可能更多的操作系统。
例子:
> toad:/home/user>arp -a
toad.stack.nl (131.155.140.135) at 00:26:b9:66:89:49 on vlan140 permanent [vlan]
websites.stack.nl (131.155.140.165) at 00:26:b9:66:89:49 on vlan140 permanent [vlan]
toad.nfs.ipv4.stack.nl (192.168.2.135) at 00:26:b9:66:89:49 on vlan2 permanent [vlan]
C:\Users\用户名>arp -a 接口:192.168.1.12 --- 0xb 互联网地址 物理地址类型 192.168.1.2 08-00-37-43-8d-78 动态 192.168.1.101 a0-b3-cc-2a-77-10 动态 192.168.1.252 00-1e-e5-7a-47-5b 动态 192.168.1.255 ff-ff-ff-ff-ff-ff 静态 224.0.0.22 01-00-5e-00-00-16 静态 224.0.0.252 01-00-5e-00-00-fc 静态 255.255.255.255 ff-ff-ff-ff-ff-ff 静态 接口:192.168.81.1 --- 0x12 互联网地址 物理地址类型 192.168.81.255 ff-ff-ff-ff-ff-ff 静态 224.0.0.22 01-00-5e-00-00-16 静态 224.0.0.252 01-00-5e-00-00-fc 静态 接口:192.168.184.1 --- 0x13 互联网地址 物理地址类型 192.168.184.255 ff-ff-ff-ff-ff-ff 静态 224.0.0.22 01-00-5e-00-00-16 静态 224.0.0.252 01-00-5e-00-00-fc 静态
如果设备有一段时间没有在网络上处于活动状态,则 ARP 缓存中的信息将被丢弃。这可以防止旧信息弄乱表,并防止当设备更改其 IP 而表仍具有旧 MAC:IP 对时出现问题。
在这种情况下,您可能需要发送ARPping到设备或 ping 本地网络上的所有设备。
地图或 zenmap(Nmap 加图形界面)是对此有用的工具,并且可以在 Linux 和 Windows 上运行。 (我主要在 Windows 上使用 zenmap)。
答案4
它被称为地址解析协议维基百科会告诉你所有相关信息 =)。引用自维基百科页,
地址解析协议 (ARP) 是一种电信协议,用于将网络层地址解析为链路层地址...