Có cách nào tôi có thể lấy địa chỉ MAC khi Network Adapter bị vô hiệu hóa trong .net?Nhận địa chỉ MAC khi bộ điều hợp mạng bị tắt?
Cảm ơn trước,
Có cách nào tôi có thể lấy địa chỉ MAC khi Network Adapter bị vô hiệu hóa trong .net?Nhận địa chỉ MAC khi bộ điều hợp mạng bị tắt?
Cảm ơn trước,
Không thể lấy địa chỉ MAC của bộ điều hợp bị tắt: điều này là do nhận địa chỉ MAC yêu cầu trình điều khiển và trình điều khiển cho bộ điều hợp bị vô hiệu hóa không được tải (source).
Tuy nhiên, bạn có thể nhận địa chỉ MAC của bộ điều hợp không được kết nối hiện tại.
Tuyến WMI không tốt ở đây, vì nó hiển thị địa chỉ MAC là không cho bộ điều hợp không được kết nối. Tin vui là tuyến đường NetworkInterface.GetAllNetworkInterfaces()
hoạt động tốt:
// using System.Net.NetworkInformation;
var nics = NetworkInterface.GetAllNetworkInterfaces();
// pick your NIC!
var selectedNic = nics.First();
var macAddress = selectedNic.GetPhysicalAddress().ToString();
Bạn có thể sử dụng WMI:
public static string GetMACAddress()
{
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
string MACAddress=String.Empty;
foreach(ManagementObject mo in moc)
{
if(MACAddress==String.Empty) // only return MAC Address from first card
{
MACAddress= mo["MacAddress"].ToString() ;
}
mo.Dispose();
}
return MACAddress;
}
Tham khảo liên kết này.
http://msdn.microsoft.com/en-us/library/system.net.networkinformation.physicaladdress.aspx
Ví dụ dưới đây sẽ hiển thị địa chỉ vật lý của tất cả các giao diện không phụ thuộc vào giai đoạn hoạt động của họ. HTH.
bạn có thể đăng mã bạn sử dụng khi bộ điều hợp được bật hay không, sau đó đề cập đến (các) cuộc gọi nào không hoạt động khi bộ điều hợp bị tắt? –