[C# Example] Code lấy địa chỉ MAC của máy tính

Để thực hiện được chương trình này, chúng ta cần sử dụng một vài phương thức, thuộc tính của class NetworkInformation. Vì vậy cần khai báo namespace này ở phần khai báo các namespace của chương trình bằng câu lệnh sau :

  • using System.Net.NetworkInformation;

Theo msnd "The System.Net.NetworkInformation namespace provides access to network traffic data, network address information, and notification of address changes for the local computer. The namespace also contains classes that implement the Ping utility. You can use Ping and related classes to check whether a computer is reachable across the network."

Tạm hiểu như sau : Namespace System.Net.NetworkInformation cung cấp các truy cập (có thể hiểu ở đây là các phương thức, thuộc tính dùng để truy cập, thao tác) tới thông tin lưu lượng dữ liệu mạng, thông tin địa chỉ mạng và những thông báo thay đổi địa chỉ cho các máy tính cục bộ (có thể hiểu là máy tính mà chương trình đang chạy). Namespace cũng chứa các lớp để thực hiện tiện ích Ping. Bạn có thể sử dụng Ping và các lớp liên quan để kiểm tra xem một máy tính có thể truy cập được qua mạng hay không.

Có thể tìm hiểu chi tiết về namespace này tại System.Net.NetworkInformation Namespace

Code chương trình

  1. /////////////////  
  2. //Lấy địa chỉ MAC  
  3. ////////////////    
  4. string DanhSachMAC = "";  

  5. NetworkInterface[] DanhSachCardMang = NetworkInterface.GetAllNetworkInterfaces();  
  6. for (int i = 0; i < DanhSachCardMang.Length; i++)  
  7. {  
  8.     PhysicalAddress DiaChiMAC = DanhSachCardMang[i].GetPhysicalAddress();  
  9.     DanhSachMAC += DanhSachCardMang[i].Name + " : ";  
  10.     byte[] ByteDiaChi = DiaChiMAC.GetAddressBytes();  
  11.     for (int j = 0; j < ByteDiaChi.Length; j++)  
  12.     {  
  13.         DanhSachMAC += ByteDiaChi[j].ToString("X2");  
  14.         if (j != ByteDiaChi.Length - 1)  
  15.         {  
  16.             DanhSachMAC += "-";  
  17.         }  
  18.     }  
  19.     DanhSachMAC += "\r\n";  
  20.     txtMAC.Text += DanhSachMAC;  
  21. }  

  • Hàm ToString("x2") có nhiệm vụ chuyển byte tương ứng của mảng kết quả thành một chuỗi Hexa gồm 2 ký tự. Như vậy, với 16 byte, ta sẽ có được chuỗi 32 ký tự. 
Kết quả



nhận xét
No comments

bình luận

No comments: