【问题标题】:how to get mac address of external IP in C#如何在C#中获取外部IP的mac地址
【发布时间】:2010-07-15 09:17:17
【问题描述】:

如何在 C# 中获取外部 IP 的 MAC 地址? 例如我想找到“204.13.153.34”的mac地址?

任何想法和代码 sn-p 都受到高度赞赏? 提前致谢

【问题讨论】:

    标签: c# .net networking ip arp


    【解决方案1】:

    您应该阅读地址解析协议。

    您无法确定不同网段中机器的 MAC 地址。使用 ARP,如果机器恰好在同一网段中,您可以找出给定 IP 地址的 MAC 地址。这就是IP堆栈正在做的事情。它通过 ARP 向负责处理 IP 地址数据包的“网络”询问 IP 地址,因为以太网卡只知道 MAC 地址。

    【讨论】:

      【解决方案2】:

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

      编辑:

      这看起来可以帮助Retrieve MAC Address

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

      它谈论的是 php,但 C# 的主体将是相同的

      【讨论】:

      • 我从 iphlpapi.dll 尝试了 SendARP,但这也不起作用:(
      • +1 - 我同意你的看法。您一定是在我输入答案时发布的。 :)
      【解决方案3】:

      像@EricSchaefer answare 一样,您无法从不同的网段获取 MAC 地址。但如果它有相同的网段,我已经在another questions回答了

      【讨论】:

        【解决方案4】:

        arp 命令是 TCP/IP 的一部分(它代表地址解析协议),但它仅适用于 LAN。

        我不认为你可以通过互联网做你想做的事。因为您将获得第一个节点的 MAC。

        【讨论】:

          猜你喜欢
          • 2017-01-26
          • 2021-11-20
          • 2013-02-27
          • 2011-02-25
          • 1970-01-01
          • 2010-10-28
          • 2013-04-03
          • 2016-03-10
          相关资源
          最近更新 更多