2014-02-26 261 views
0

我想获取客户端mac地址。我使用该代码,但它获取服务器的MAC地址。我如何解决这个问题?C#获取mac地址获取服务器mac地址

 NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces(); 
     String sMacAddress = string.Empty; 
     foreach (NetworkInterface adapter in nics) 
     { 
      if (sMacAddress == String.Empty)// only return MAC Address from first card 
      { 
       IPInterfaceProperties properties = adapter.GetIPProperties(); 
       sMacAddress = adapter.GetPhysicalAddress().ToString(); 
      } 
     } return sMacAddress; 
+1

哪个客户端,客户端如何连接到服务器?您的C#程序是否处理传入连接?您上面的代码仅适用于运行代码的计算机上的物理适配器。 – Nate

+0

我在网页上编码的任何客户端。我尝试获取客户端mac地址。因为该客户端加入投票。他们参加了一次民意调查。我在那台计算机的mac地址上聊天。 –

+0

可能无法完成,另请参阅:http://stackoverflow.com/questions/3309122/how-can-i-get-a-mac-address-from-an-http-request – Nate

回答

0

服务器端代码不会读取客户端MAC地址,但是您应该能够从服务器操作系统内读取客户端MAC。 IPGlobalProperties可用于显示活动连接。

同时在本地服务器上发出“arp -a”命令将显示连接到服务器的客户端的IP地址和MAC地址。因此,由于客户端连接到服务器arp -a将显示IP地址和MAC,假设您知道如何通过c#向命令提示符发出命令。

+0

你有没有关于这个问题的例子? –

+0

正如我在上面链接的答案中所述,这只有在客户端位于同一网段时才有效。这是不太可能的。这是一个遥远的可能性,但我正在考虑一个普通的Web服务器,而不是。 – Nate