如何在C#中获取外部IP的MAC地址

3

如何在C#中获取外部IP的MAC地址?

例如,我想找到“204.13.153.34”的MAC地址?

有什么想法和代码片段将不胜感激。

谢谢您提前。

4个回答

3

您应该了解地址解析协议。

如果要查询不同网络段中计算机的MAC地址,无法确定。通过ARP,如果机器恰好在同一段中,则可以找到给定IP地址的MAC地址。这就是IP堆栈正在执行的操作。它通过ARP询问“网”谁负责处理IP地址的数据包,因为以太网卡仅知道MAC地址。


1

我认为除非你在另一端编写一些发送给你的内容,否则这是不可能的?

编辑:

看起来这似乎可以帮助检索MAC地址

编辑: 如果没有本地局域网访问权限,您将无法获取用户的外部MAC地址...除非:您可以访问良好的ARP表,并且仅当客户端直接连接到php服务器时(如果有路由器/网关对流量进行NAT,则返回的MAC地址将是网关的MAC地址)- 来源

它谈论了php,但原则对于C#也是相同的。


我尝试使用iphlpapi.dll中的SendARP,但那也不起作用 :( - Swapnil Gupta
+1 - 我同意你的观点。我想你在我回答时发了帖子。 :) - ChrisBD

1

就像 @EricSchaefer 的回答一样,你无法从不同的网络段获取MAC地址。但是,如果它们拥有相同的网络段,我已经在另一个问题中回答了。


0

有一个与TCP/IP相关的arp命令(它代表地址解析协议),但它只能在局域网上运行。

我认为你无法在互联网上实现你想要的功能。因为你只会得到第一个节点的MAC地址。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接