如何将 IP 地址转换为 MAC 地址

Posted

技术标签:

【中文标题】如何将 IP 地址转换为 MAC 地址【英文标题】:How could I convert from IP address to MAC address 【发布时间】:2013-05-09 15:29:15 【问题描述】:

我想存储可以访问我的服务器的所有 MAC 地址。 我所知道的只是IP地址。所有机器都在唯一的网关下。 我可以从他们的 IP 地址中获取 MAC 地址吗?

【问题讨论】:

如果服务器也是 DHCP 服务器并且所有连接的机器都从该服务器获取它们的 IP 地址,那么您可以。或者,如果您可以访问 dhcp 服务器日志。这适用于局域网。如果中间有几个路由器是不可能的。 我认为这个问题不值得投反对票,这是一个结构良好的问题,但答案通常只是 NO。虽然,我同意它应该作为重复或离题关闭。 【参考方案1】:

MAC 地址不是任何路由协议的一部分,您永远无法获得位于路由器或交换机另一端的机器的 MAC 地址。

它们是物理端口的地址,而不是机器的地址(这是您使用 IP 的目的)。

【讨论】:

【参考方案2】:

如果服务器和客户端在同一个网络上,您必须使用ARP。此协议旨在获取给定 IP 地址的 MAC 地址。

一旦客户端和服务器之间存在路由器之类的东西,ARP 将只显示路由器的 MAC 地址,因为这是您的以太网数据包的目标。

【讨论】:

【参考方案3】:

简单的答案是,不,除非两台机器都在同一个物理网络上,否则您无法从 IP 地址获取连接到服务器的客户端的 MAC 地址

【讨论】:

【参考方案4】:

无法从 IP 地址获取 MAC 地址。 MAC地址是网络设备的物理地址,IP地址不是。

IP 地址通常不绑定到一台设备。

【讨论】:

【参考方案5】:

我建议你通过this

帖子说

   An IP address is usually assigned by the network administrator or internet 
service provider, you are either provided a static one at the beginning or 
given a dynamic one every time you connect to the network. 
      This is not true with MAC addresses as it is already embedded on the device 
or the network card during manufacturing. It is supposed to be permanent and could 
 not be changed by anyone as it was meant to identify a specific network interface 
card no matter where it is in the world.

但是有一些方法可以更改 mac 地址,但我认为无法使用 IP 地址获取 mac 地址

【讨论】:

引文最后一句不正确。大多数 NIC 支持更改 MAC 地址,例如控制面板。许多组织根据逻辑或物理位置执行此操作,以便他们可以跟踪资产。

以上是关于如何将 IP 地址转换为 MAC 地址的主要内容,如果未能解决你的问题,请参考以下文章

在C语言中,如何将字符串“192.168.1.1”转换成MAC地址或IP地址?

如何在 Android Java 中将 MAC 地址转换为 IP?

组播IP转换为组播MAC地址转载

在C语言中,如何将字符串“192.168.1.1”转换成MAC地址或IP地址?

如何将Mac地址转换为十六进制并将其传递给java中的字节数组

用c#处理下面字符串,将字符串中的ip地址对应mac录入到dataset中 字符串如下: