2014-02-26 450 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