【问题标题】:web server to fetch client's machine mac address用于获取客户端机器 MAC 地址的 Web 服务器
【发布时间】:2009-05-20 16:19:14
【问题描述】:

我正在尝试为在线构建的 C# winform 应用程序构建一些复杂的东西,并尝试在这里和那里收集一些信息。我在网上查看了可以获取计算机的 mac 地址使用 System.Net.NetworkInformation 或 System.Management.ManagementClass 的网络(由于某些原因我无法引用)。我的烦恼在哪里

  1. 我的在线网络服务器能知道连接到它的客户端机器的mac地址吗?
  2. 如果问题 1 为真,我猜它会使用 IP(如果我错了,请纠正我)如果客户端的计算机位于代理服务器后面或使用多个 Web 代理怎么办?
  3. 如果问题 1 和 2 是肯定的 如何从 Web 服务器执行此操作。

【问题讨论】:

    标签: c# asp.net iis


    【解决方案1】:

    不,没有简单的方法可以做到这一点。

    MAC 地址只能在同一个子网中解析 - 假设这不是一个相当小的 Intranet 应用程序,您将不会与您的客户端在同一个子网中。

    理论上,使用远程 WMI 查询客户端是可行的 - 但防火墙和权限问题并非易事。同样,除非您可以控制所有客户端 - 您不太可能在这里取得成功。

    您唯一能做的就是一个可下载的应用程序(可能是 Flash、Silverlight 或 ActiveX)为您询问本地计算机。不过,我不确定该信息是否会被浏览器沙盒化。

    我的猜测是有一种更简单的方法来做你想做的事情 - 但你需要提供更多关于为什么你想要 MAC 地址的细节。

    【讨论】:

    • 感谢您的回复。我想我必须构建一个小型 Winform 应用程序才能做到这一点
    【解决方案2】:

    您无法从网络服务器获取任何此类信息,因此您不应该尝试。考虑到机器可能有多个 IP 地址和多个 MAC 地址,并且可能位于代理服务器或网络地址转换设备之后,或者更糟。

    IP 地址属于网络层,一般不应该被应用层使用。如果不出意外,网络管理员不太可能在对网络进行更改以使您的假设无效时咨询开发人员。

    【讨论】:

      【解决方案3】:

      正如其他回复所暗示的,获取 IP 地址可能无法满足您的需求。您想将这些信息用于什么目的?

      您可能想尝试使用System.Management.ManagementObjectSearcher 对象来查询此类信息。我知道这可以用来获取每个连接的网络适配器的 MAC 地址。这个逻辑必须在客户端,然后可以将您需要的任何信息传递给服务器。

      看起来this Google Groups post 可能会满足您的需求。 这是有趣的一点:

      using System.Management;
      
      ObjectQuery query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration"); 
      ManagementObjectCollection queryCollection = query.Get();
      foreach( ManagementObject mo in queryCollection )
      {
           foreach(string s in addresses)
           { 
                  Console.WriteLine( "IP Address ‘{0}’", s); 
           }
           foreach(string s in subnets)
           { 
                  Console.WriteLine( "IP Subnet ‘{0}’", s); 
           }
      }
      

      【讨论】:

      • 正如我所说,我使用了 system.net.networkinformation 命名空间。我已经从解决方案资源管理器中添加了对 system.Management dll 的引用(你知道右键单击并单击添加引用)。但是任何时候我使用命名空间,例如 using System.Management,我的重塑器智能都会在它下划线并说无法解析符号.如果我继续构建项目,它会失败。不知道为什么。这是我不使用系统的主要原因。管理。哦,是的,这是一个学校项目,我认真地向银行提出涵盖电子商务的某些方面(安全)不能说太多:)
      猜你喜欢
      • 2016-09-06
      • 1970-01-01
      • 2014-10-04
      • 1970-01-01
      • 1970-01-01
      • 2021-05-14
      • 1970-01-01
      • 1970-01-01
      • 2011-02-20
      相关资源
      最近更新 更多