有没有一种简单的方法来获取通过 TCP/IPv4 套接字连接到我的应用程序的机器的 MAC 地址?
或者更笼统地说:
如果我有 IP 地址,那么在 IPv4 中获取相应 MAC 地址的最佳方法是什么?
有没有一种简单的方法来获取通过 TCP/IPv4 套接字连接到我的应用程序的机器的 MAC 地址?
或者更笼统地说:
如果我有 IP 地址,那么在 IPv4 中获取相应 MAC 地址的最佳方法是什么?
MAC 地址仅用于下一跳。这基本上意味着客户端的原始 MAC 地址在第一跳后将不可见。一般来说,如果您与客户端不在同一物理网段上,则无法获取 IP 并获取 MAC(反之亦然)。
如果没有其他网络上的某些东西(或客户端本身),您就不能。
MAC 地址用于OSI 网络模型的第二层,即数据链路层。MAC 特定于以太网。当您访问 Internet 时,会使用 IP 地址。并非所有连接到 Internet 的东西都在较低层使用以太网。
除了 IP 之外,还有其他协议可以使用。
基本上,您的计算机只知道其物理网段上的内容。如果它必须出去做其他事情,它只知道到达那里的网关的 MAC。
保存该信息是 ARP 表的工作。最好的办法是从那里读出来。
您可以考虑阅读Query ARP cache to get MAC ID的答案。提问者使用的是 Java,但除此之外,它与您的问题相同。