2010-08-30 36 views
6

Tôi đang xây dựng ứng dụng C# và tôi muốn tìm nạp ID MAC của hệ thống. Tôi đã tìm thấy nhiều đoạn mã, nhưng họ đưa ra câu trả lời sai hoặc ném ngoại lệ. Tôi không chắc đoạn mã nào đang đưa ra câu trả lời đúng. Ai đó có thể cung cấp cho tôi đoạn mã chính xác tìm nạp ID MAC không?Cách lấy ID MAC của hệ thống bằng C#

Trả lời

10

Điều này sẽ giúp bạn.

public string FetchMacId() 
{ 
    string macAddresses = ""; 

    foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces()) 
    { 
     if (nic.OperationalStatus == OperationalStatus.Up) 
     { 
      macAddresses += nic.GetPhysicalAddress().ToString(); 
      break; 
     } 
    } 
    return macAddresses; 
} 
+0

Cái này là rất tốt. Việc này ổn với tôi. Cảm ơn Pankaj –

+1

Tại sao chuỗi nối và 'ngắt'? Tại sao bạn không thể viết 'return nic.GetPhysicalAddress(). ToString()' bên trong vòng lặp và loại bỏ biến? – Timwi

0

System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces();

và lặp qua mỗi giao diện, nhận được địa chỉ MAC cho mỗi một.

Một cách khác là sử dụng đối tượng quản lý:

ManagementScope theScope = new ManagementScope("\\\\computerName\\root\\cimv2"); 
StringBuilder theQueryBuilder = new StringBuilder(); 
theQueryBuilder.Append("SELECT MACAddress FROM Win32_NetworkAdapter"); 
ObjectQuery theQuery = new ObjectQuery(theQueryBuilder.ToString()); 
ManagementObjectSearcher theSearcher = new ManagementObjectSearcher(theScope, theQuery); 
ManagementObjectCollection theCollectionOfResults = theSearcher.Get(); 

foreach (ManagementObject theCurrentObject in theCollectionOfResults) 
{ 
    string macAdd = "MAC Address: " + theCurrentObject["MACAddress"].ToString(); 
    MessageBox.Show(macAdd); 
} 
Các vấn đề liên quan