1

有没有一种简单的方法来获取通过 TCP/IPv4 套接字连接到我的应用程序的机器的 MAC 地址?

或者更笼统地说:

如果我有 IP 地址,那么在 IPv4 中获取相应 MAC 地址的最佳方法是什么?

4

3 回答 3

6

MAC 地址仅用于下一跳。这基本上意味着客户端的原始 MAC 地址在第一跳后将不可见。一般来说,如果您与客户端不在同一物理网段上,则无法获取 IP 并获取 MAC(反之亦然)。

于 2011-03-14T19:52:43.620 回答
3

如果没有其他网络上的某些东西(或客户端本身),您就不能。

MAC 地址用于OSI 网络模型的第二层,即数据链路层。MAC 特定于以太网。当您访问 Internet 时,会使用 IP 地址。并非所有连接到 Internet 的东西都在较低层使用以太网。

除了 IP 之外,还有其他协议可以使用。

基本上,您的计算机只知道其物理网段上的内容。如果它必须出去做其他事情,它只知道到达那里的网关的 MAC。

于 2011-03-14T19:56:43.973 回答
2

保存该信息是 ARP 表的工作。最好的办法是从那里读出来。

您可以考虑阅读Query ARP cache to get MAC ID的答案。提问者使用的是 Java,但除此之外,它与您的问题相同。

于 2011-03-14T19:54:48.233 回答