Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Trích xuất địa chỉ MAC bằng C#


Đị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ạng
  • OperationalStatus.Up: Chỉ lấy card đang hoạt động
  • GetPhysicalAddress(): 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.