Địa chỉ MAC (Media Access Control Address) là định danh duy nhất được gán cho bộ điều khiển mạng (network interface). Công nghệ MAC được sử dụng bởi Ethernet, Bluetooth, Fibre Channel, v.v.
Phương pháp
Sử dụng NetworkInterface.GetAllNetworkInterfaces() để lấy tất cả giao diện mạng, kết hợp với NetworkInterfaceType để lọc loại giao diện.
Ví dụ hoàn chỉnh
using System;
using System.Net.NetworkInformation;
namespace MACAddressDemo
{
class Example
{
public static string GetMacAddress()
{
string macAddress = "";
foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
{
// Chỉ lấy giao diện đang hoạt động (Up)
if (nic.OperationalStatus == OperationalStatus.Up)
{
// Bỏ qua loopback, tunnel, virtual adapters
if (nic.NetworkInterfaceType != NetworkInterfaceType.Loopback &&
nic.NetworkInterfaceType != NetworkInterfaceType.Tunnel)
{
macAddress = nic.GetPhysicalAddress().ToString();
break; // Lấy MAC đầu tiên tìm thấy
}
}
}
return macAddress;
}
static void Main()
{
string mac = GetMacAddress();
Console.WriteLine("Địa chỉ MAC: " + mac);
}
}
}
Kết quả mẫu
Địa chỉ MAC: 001A2B3C4D5E
Giải thích
NetworkInterface.GetAllNetworkInterfaces(): Liệt kê tất cả card mạngOperationalStatus.Up: Chỉ lấy card đang hoạt độngGetPhysicalAddress(): Trả vềPhysicalAddress(địa chỉ MAC)- Lọc bỏ Loopback, Tunnel, Virtual adapters để lấy MAC vật lý thực
Lưu ý: Cần tham chiếu System.Net.NetworkInformation. Trên Linux/macOS (dotnet core), kết quả có thể khác nhau tùy driver.